Michi: Alle diejenigen Datensätze, für die keine Verknüpfung besteht...

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

  1. 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)

    1. Das funktioniert mit dem "IN", danke!

  2. 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