mrblondeMedlem sedan aug. 20012 349 inlägg veckans sql-fråga:
om jag har en tabell A med bl.a. en kolumn "id" och en annan tabell B med bl.a. en kolumn "other_id" där other_id är en referens till id i andra tabellen.
hur skriver jag en query "Ge mig alla id som inte har någon referens till sig från tabell B" utan att använda sub_queries?
motsvarande med subquery:
SELECT
A.id
FROM
A
WHERE
A.id NOT IN ( SELECT other_id FROM B )
@ndersMedlem sedan juni 200032 969 inlägg Jag hade spontant försökt med något sånt här:
SELECT A.ID FROM A LEFT OUTER JOIN B ON A.ID = B.other_id AND b.other_ID IS NULL
Edit: Vad betyder spontalt? :o
Mvh
LarsGMedlem sedan dec. 200012 464 inlägg select a.id from a except select other_id from b
mrblondeMedlem sedan aug. 20012 349 inlägg Det här svaret är till @nders
nej det gav ju inte något bra resultat, fick alla raderna i tabell A tillbaka.
A tabellen
aid
1
2
3
4
5
B tabellen
bid, baid
10 1
20 2
40 4
Så svaret på queryn skall bli aid= 3 och 5
Var så sabla länge sedan jag skrev SQL... argh!
@ndersMedlem sedan juni 200032 969 inlägg Och om du byter AND mot WHERE?
(gissar)
mrblondeMedlem sedan aug. 20012 349 inlägg Lars, det fungerade inte heller, det är en subquery, det är en gammal MySQL db som jag frågar om.
mrblondeMedlem sedan aug. 20012 349 inlägg SELECT A.aID FROM A left outer JOIN B ON A.aID = B.baid WHERE b.baid IS NULL
Fungerade, tack för er eminenta snabba hjälp!
@ndersMedlem sedan juni 200032 969 inlägg And eller where i dessa fall, det lär jag mig aldrig. ;)
LarsG, tack för ny kunskap. :)