Alle diejenigen Datensätze, für die keine Verknüpfung besteht...
Michi
- datenbank
Hallo,
beschäftige mich zwar auch schon ein paar Jahre mit MySQL, aber jetzt brauch ich mal eine Query, in der all diejenigen Datensätze gefunden werden sollen, für die in der anderen Tabelle keine Verknüpfung besteht.
Schematisch:
__________________________________________________________________________
Tabelle A:
Personendaten
Tabelle B:
Ereignisse, enthält u.a. Fremdschlüssel zu Tabelle A
(Es wird darüberhinaus kein redundantes Feld in
Personen mit der Anzahl bestehender Ereignisse geführt.)
Anweisung: Suche alle diejenigen Personen, für die noch kein Ereignis vorliegt.
__________________________________________________________________________
(Möchte die Filterlogik natürlich so weit wie möglich über MySQL umsetzen und so wenig wie möglich über die Skriptsprache.)
Gruß Michi
Ich weiss jetzt nicht ob mysql den in-operator kennt, aber ich würds so machen
SELEC * FROM A WHERE A.ID NOT IN (SELECT DISCTINT FREMDSCHLUESSELZUA FROM B)
Das funktioniert mit dem "IN", danke!
yo,
Anweisung: Suche alle diejenigen Personen, für die noch kein Ereignis vorliegt.
entweder mit einer unterabfrage, wie in der anderen antwort beschrieben wurde oder aber mit einem klassiker, dem OUTER JOIN, der auch für alle versionen in mysql geht.
SELECT a.spalte1, a.spalte2
FROM tabelleA a
LEFT JOIN tabelleB b ON b.Fremdschlüssel_zu_a = a.Primärschlüssel_von_a
WHERE b.Fremdschlüssel_zu_a IS NULL
;
Ilja