Hi NG.
Ich möchte per localSQL eine Abfrage über vier Tabellen tab1, tab2, tab3 und tab4 erstellen. Die Beziehungen der Tabellen untereinander sind wie folgt:
Delphi-Quellcode:
tab4 <- tab1 -> tab2 -> tab3
mit -> := OUTER JOIN
Das
Query soll alle Sätze aus tab1 anzeigen.
Bisher schaut meine Abfrage so aus:
SQL-Code:
SELECT tab1.FeldA, tab2.FeldB, tab3.FeldC, tab4.FeldD
FROM tab1
LEFT OUTER JOIN tab2
ON (tab1.Feld1=tab2.Feld1) AND (tab1.Feld2=tab2.Feld2)
LEFT OUTER JOIN tab3
ON (tab2.Feld3=tab3.Feld3)
LEFT OUTER JOIN tab4
ON (tab1.Feld4=tab4.Feld4)
WHERE
(tab2.Feld5 IS NULL OR tab2.Feld5=100)
OR
tab3.Feld7 IS NULL
AND
(tab4.Feld6 IS NULL OR tab4.Feld6=100)
Als Ergebnis erhalte ich hierbei mehr Sätze als erwartet.
Lasse ich im
SQL-Text die JOIN-Zeile von tab4 weg, so erhalte ich die korrekte Anzahl an Sätzen.
Kann mir jemand einen Tipp geben was ich falsch mache?
Gruß
Peter