Select met subselect

Status
Niet open voor verdere reacties.

Luukie

Gebruiker
Lid geworden
14 sep 2008
Berichten
105
Beste allemaal,

Ik heb twee tabellen, tabel 'oud' (PK=ad_addrid) en tabel 'nieuw' (PK=RELID).
In tabel 'oud' staan 100 records, in tabel 'nieuw' staan er 200.

Nu wil ik alle records selecteren uit de tabel 'nieuw' die niet in tabel 'oud' staan.

Ik had daarvoor het volgende bedacht:
[SQL]SELECT *
FROM oud
WHERE ad_addrid not in

(SELECT RELID FROM Nieuw)
[/SQL]

Het resultaat is echter 0 dat ik krijg, helemaal geen enkele record.

Hoe kan dit? kan iemand me helpen?

Alvast bedankt,

Luuk

ps. de records in ad_addrid zijn identiek aan de records in RELID.
 
Laatst bewerkt:
Moet net andersom:

[SQL]SELECT *
FROM nieuw
WHERE RELID NOT IN
(SELECT ad_addrid FROM oud)[/SQL]

Tardis
 
Beste Tardis,

bedankt voor je snelle reactie maar volgens mij klopt het resultaat niet met mijn verwachting.

als ik jou query uitvoer doe ik eigenlijk het volgende:
Selecteer alle records uit nieuw die niet voorkomen in oud.

terwijl mijn vraag eigenlijk is:
Selecteer alle records uit oud die niet in nieuw voorkomen.

Zie ik het verkeerd of is er een andere oplossing nodig?

alvast bedankt,

Luuk
 
[sql]SELECT ad_addrid
FROM oud
WHERE NOT EXISTS ( SELECT ad_addrid FROM nieuw WHERE oud.ad_addrid = nieuw.ad_addrid )[/sql]

Zoiets denk ik. Als je "rij die niet bestaat" zoekt zou ik gaan voor NOT EXISTS.
 
Ik heb jouw query gebruikt in een voorbeeldje, en hij doet het prima. Als het antwoord 0 is, dan heb je geen records die niet voorkomen... Dat is één reden. Een andere kan zijn, dat je veldeigenschappen niet overeenkomen, maar dat zal, mag ik hopen, toch niet het geval zijn.... In welk type db voer je de query uit?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan