Hallo zusammen,
ich komme mit der Logik, die hinter den JOINs steckt nicht so ganz klar.
Wenn ich z.B. zwei Tabellen habe
AKTEN
RECHTSANWALT
und ich eine Ausgabe von allen Akten mit zugehörigem (deutschen) Rechtsanwalt (falls er existiert!) haben will, so löse ich das so:
SQL-Code:
select AKTEN.AKTENNR,RECHTSANWALT.NAME
from AKTEN,RECHTSANWALT
where AKTEN.REID=RECHTSANWALT.ID(+)
and (RECHTSANWALT.LAND='DE' or RECHTSANWALT.LAND is null)
Jetzt gibt es die Möglichkeit einer Akte auch mehrere Ereignisse zuzuordnen. Dies erfolgt über AKTEEREIG und EREIGNIS und zwar im Normalfall so
SQL-Code:
....
where AKTEN.ID=AKTEEREIG.AKTID
and EREIGNIS.ID=AKTEEREIG.ERGID
Wenn die Frage jetzt lautet, gib mir alle Akten und falls vorhanden das zugehörige Ereignis "Chefeinsicht",
würde ich das jetzt ein UNION lösen.
SQL-Code:
select AKTEN.AKTENR.....
from AKTEN,AKTEREIG,EREIGNIS
where AKTEN.ID=AKTEEREIG.AKTID
and EREIGNIS.ID=AKTEEREIG.ERGID
and .....
UNION
select AKTEN.AKTENR.....
from AKTEN
where not exists (select * from AKTEN.ID=AKTEEREIG.AKTID and EREIGNIS.ID=AKTEEREIG.ERGID and EREIGNIS.NAME='Chefeinsicht')
and .....
Kann man das auch über ein JOIN lösen, ähnlich dem ersten Beispiel?
Gruß
K-H