Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

verständnisfrage zum JOIN

  Alt 25. Mai 2010, 11:26
Datenbank: oracle • Zugriff über: egal
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='DEor 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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat