Hallo Indyk,
Da wir ja nun beide wissen das mein Ansatz in die Hose
gegangen ist… wäre ich für einen neuen sehr dankbar ( :
wusste ich’s doch *gg*
Dein Problem lässt sich auf mehrere Arten lösen.
(1) Der Outer Join
Ich kenne die ISO-Syntax für den Outer Join leider nicht, unter Oracle würde es so aussehen:
SELECT \* FROM t1, t2 WHERE t1.x = t2.x(+)
Der Select bringt jetzt alle Sätze, die entweder in t1 und t2 mit gleichem x drin sind, oder aber nur in t1 und in t2 keinen Match haben.
Mit der zusätzlichen Einschränkung:
SELECT \* FROM t1, t2 WHERE t1.x = t2.x(+) AND t2.x IS NULL
findet er nur mehr die, wo es in t2 keinen Match gibt.
(2) Der Subselect
(2a) mit EXISTS
SELECT \* FROM t1 WHERE NOT EXISTS (SELECT \* FROM t2 WHERE t2.x=t1.x)
(2b) mit IN
SELECT \* FROM t1 WHERE x NOT IN (SELECT x FROM t2)
Die Ergebnisse der drei SELECTs sind übrigens nicht in jedem Fall gleich. Wann das der Fall ist darfst Du Dir aber gerne selbst überlegen
[Ein Tipp: NULL]
danke für deine mühe und zeit.
Aber gerne doch.
Lg
Martin