Hallo Ben,
für Dein Problem gibt es mindestens zwei Lösungsansätze:
- mit einem OUTER JOIN (sollte mit jeder MySQL-Version gehen)
- mit Subselects (erfordert MySQL 4.1.x oder neuer)
Table 1:
id |ca_id
1 |2
2 |2
3 |2
4 |3Table 2:
old_id |ca_id
2 |2
7 |3
Ich möchte nun alle Einträge aus Table 1 haben, welche ca_id=2 haben und nicht in Table2 drin sind. Genauer:
In diesem Falle also die Einträge mit table1.id=1 und table1.id=3
Lösung mit OUTER JOIN:
1. Lass Dir alle Einträge aus Table 1 anzeigen mit der
Entsprechung in Table 2, auch dann wenn es keine Entsprechung gibt:
LEFT OUTER JOIN
2. Schränke die Zielmenge auf die von Dir gewünschten Datensätze ein,
diese Datensätze haben in table2.ca_id den speziellen Wert NULL, auf
den Du mit IS NULL
prüfen kannst.
Zwei Lesetipps zu Joins:
Einführung Joins
Fortgeschrittene Joins
Freundliche Grüße
Vinzenz