21. marts 2003 - 14:39
Der er
11 kommentarer og 1 løsning
kombinere tabeller
Den her kan jeg ikke lige gennemskue: Jeg har tre tabeller 1:user id_user, usernavn 2: events id_event, eventtitel 3: tilmelding id_user, id_event, status Hvor id_user og id_event i tabel 3, kommer fra de to andre tabeller. Nu var det så jeg gerne ville lave en select der kun fandt de events som brugeren endnu ikke har tilmeldt sig til! Hvordan skal den kringles?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
21. marts 2003 - 14:46
#1
Måske... SELECT * FROM events WHERE id_event != 'et_eller_andet'
21. marts 2003 - 14:46
#2
du kan bruge "not exists"
21. marts 2003 - 14:48
#3
Sorry... SELECT * FROM tilmelding WHERE id_user != 'et_eller_andet'
21. marts 2003 - 14:51
#4
Select * from event e where not exists (Select * from tilmelding t where t.id_user = <userid> and t.id_event = e.id_event)
21. marts 2003 - 14:51
#5
hov.. det var et svar
21. marts 2003 - 14:57
#6
arnvig -> Det ser spændende ud, men jeg mener ikke mysql understøtter subselects ?
21. marts 2003 - 15:00
#7
åååh-ja, det er rigtigt. Så er der vist desværre ikke nogen nem løsning, beklager.
21. marts 2003 - 15:01
#8
ER der en svær løsning? :-) Søren
22. marts 2003 - 16:37
#9
prøv denne. Der er to kald til databasen. bruger id'et bliver sat på første linie. //------------------------ $id_user = 2; $foresp = mysql_query("SELECT id_event FROM tilmelding WHERE id_user = $id_user"); if (mysql_num_rows($foresp) > 0 ) { $sql = 'WHERE '; while($row = mysql_fetch_array($foresp)) { if ($sql != 'WHERE ') $sql.= " AND"; $sql.= " id_event != " .$row['id_event']; } } else { $sql = ''; } $foresp2 = mysql_query("SELECT id_event, eventtitel FROM events $sql"); while($row2 = mysql_fetch_array($foresp2)) { echo $row2['id_event'] . ": " . $row2['eventtitel'] . "<br>"; }
22. marts 2003 - 17:07
#10
Jeg fandt efter lidt søgning på nettet en anden løsninger, se nedenstående: mysql_query("create temporary table _not_assigned select arr_id from kalenderreadx where kalenderreadx.user_id = $row[id]"); mysql_query("create temporary table _not_assigned select arr_id from kalenderreadx where kalenderreadx.user_id = $row[id]"); for så herefter at lave en left join _not_assigned on id på den oprindelige select. Søren
24. marts 2003 - 09:49
#11
er det nødvendigt at lave querien 2 gange ?
24. marts 2003 - 10:53
#12
Det er en skrive fejl, den skal kun køres en gang. Søren
Vi tilbyder markedets bedste kurser inden for webudvikling