30. marts 2004 - 13:39
Der er
22 kommentarer og 1 løsning
MySQL: Slå op i to tabeller. Hent det id der kun findes i den ene
Hej Hvordan formulerer jeg en SQL sætning der slår op i to tabeller og udtrækker de id'er der kun findes i den ene tabel. DVS. Tabel A: 1, 2, 3, 4, 5, 6 Tabel B: 1, 4, 5 SQL'en skal levere en record set udfra id 2, 3, 6 da disse mangler. Dette må kunne formuleres udelukkende i SQL - kan det ikke det?
Annonceindlæg fra Computerworld
30. marts 2004 - 14:06
#1
prøv noget a'la select id form tabela where id not in (select id from tabelb)
30. marts 2004 - 14:07
#2
SQL = "SELECT tabel1.A, tabel2.B FROM tabel1, tabel2 WHERE tabel1.A <> tabel2.B;" er det sådan noget ?
30. marts 2004 - 14:08
#3
eller når du mener tabeller mener du så 2 kolonner i én tabel ?
30. marts 2004 - 14:11
#4
phineas_phreak: Dit SQL kald vil returnere ALLE mulige kombinationer, da du ikke joiner tabellerne...
30. marts 2004 - 14:15
#5
så tror jeg at jeg har misforstået spørgsmålet
30. marts 2004 - 15:00
#6
Så vidt jeg kan forstår ønsker du at udskrive samtlige poster hvor tabelA <> tabelB korrekt ? burde det så ik kunne gøres sådan her : SQL = "SELECT DISTINCT(tabel1.id), id FROM brugere, tabel2 WHERE tabel1.id <> tabel2.id"
30. marts 2004 - 15:00
#7
og bemærk at der IKKE skal være mellemrum mellem <>
30. marts 2004 - 15:01
#8
agh og id FROM brugere, tabel2 skal selvfølgelig være id FROM tabel1, tabel2 men det har du vel regnet ud ;)
30. marts 2004 - 15:31
#9
Cesil, dit første svar ser fornuftigt ud, men jeg kan ikke helt få det til at virke. Mine tabeller hedder faktisk: aav_menu - indeholder id aav_pages - indeholder menuID Hvis jeg sletter et menupunkt skal jeg finde de sider der har et ugyldigt menuID SQL: SELECT aav_pages.menuID FROM aav_pages where aav_pages.menuID not in ( select aav_menu.id FROM aav_menu ) You have an error in your SQL syntax near 'select aav_menu.id FROM aav_menu)
30. marts 2004 - 15:42
#10
Det burde se sådan ud SQL = "SELECT aav_pages.menuID FROM aav_pages where aav_pages.menuID not in (select aav_menu.id FROM aav_menu)"
30. marts 2004 - 15:48
#11
Ja, men det var jo også det samme jeg skrev ovenfor :) Blot som en mere overskuelig opstilling da jeg tester i phpMyAdmin, men SQL'en er den samme. Jeg får stadig samme besked: You have an error in your SQL syntax near 'select aav_menu.id FROM aav_menu)
30. marts 2004 - 15:51
#12
har du prøvet min løsning ?
30. marts 2004 - 16:06
#13
Yeps! ;)
30. marts 2004 - 16:06
#14
ehm nej mener jeg
30. marts 2004 - 16:08
#15
Ah jow, det har jeg prøvet, men denne leverer ikke det korrekte resultat phineas_phreak
30. marts 2004 - 16:11
#16
måske det ikke hedder not in i mysql.
30. marts 2004 - 16:16
#17
prøv lige det her SQL = "SELECT aav_pages.menuID FROM aav_pages where aav_pages.menuID <> (select aav_menu.id FROM aav_menu)"
30. marts 2004 - 16:22
#18
hvilken verion mysql kører du? subselects understøttes først fra version 4.1
30. marts 2004 - 16:26
#19
Det er vist: v 3.23.58 Kører på et b-one webhotel. Jamen så er det sq nok derfor :) Ok så må jeg bare fifle en anden løsning sammen. Havde bare håbet det hele kunne formuleres i en og samme sætning.
30. marts 2004 - 17:08
#20
cesil, den giver faktisk den samme fejl så det er nok ikke understøttet
30. marts 2004 - 23:17
#21
Er der andre måder at formulere det på i SQL?
31. marts 2004 - 08:12
#22
31. marts 2004 - 21:33
#23
Takker, jeg fimder ud af noget :)
Kurser inden for grundlæggende programmering