Eine Methode nutzt einen Left Join von Vokabel nach Kasten. Für das was im Kasten nicht enthalten ist, sind die Kasten-Felder (z.B. die Id) NULL. Darauf kann man testen. Eine andere Methode ist eine Subquery mit NOT EXISTS.
dedlfix.
Hi dedlfix,
danke schonmal für die Antwort.
Wie das mit dem Leftjoin laufen soll ist mir nicht ganz klar - wie kann ich so auf nicht vorhandene IDs bzw. NULL in den Kasten-Feldern auswählen??
Mit dem Subquery wie soll das dann aussehen? Ungefähr so:
SELECT DISTINCT vo_id FROM vokabel
WHERE NOT EXISTS (SELECT * FROM kasten
WHERE kasten.vo_id = vokabel.vo_id) and sprache_id='$sp_id';
Wenn das so richtig ist, prüfe ich nur ob die Vokabel überhaupt nicht in der Tabelle Kasten vorhanden ist. Ich prüfe allerdings nicht ob sie nur in einer der beiden Abfrage Reihefolgen (DT/FS FS/DT) vorkommt.
Ginge das:
SELECT DISTINCT vo_id FROM vokabel
WHERE NOT EXISTS (SELECT * FROM kasten
WHERE (kasten.vo_id = vokabel.vo_id) OR (kasten_nr_d='0' ) and sprache_id='$sp_id';
bzw. halt dann für die andere Reihenfolge der entsprechend andere Kasten - wäre so was richtig?
Kann leider gerade nicht testen, da mein WAMP Server mal wieder abgestürzt ist.
Grüße
Data