Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

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

Re: verständnisfrage zum JOIN

  Alt 25. Mai 2010, 12:29
@mkinzler
Und wie?

bei

SQL-Code:
where AKTEN.ID=AKTEEREIG.AKTID(+)
  and EREIGNIS.ID(+)=AKTEEREIG.ERGID
werden alle Ereignisse ausgegeben

und bei
SQL-Code:
where AKTEN.ID=AKTEEREIG.AKTID(+)
  and EREIGNIS.ID(+)=AKTEEREIG.ERGID
  and EREIGNIS.NAME='Chefeinsicht'
sowie
SQL-Code:
where AKTEN.ID=AKTEEREIG.AKTID(+)
  and EREIGNIS.ID(+)=AKTEEREIG.ERGID
  and (EREIGNIS.NAME='Chefeinsichtor EREIGNIS.NAME is null)
kommen nur die Akten heraus, die auch das passende Ereignis haben.
Auf welchem Schlauch stehe ich da gerade?

@spaxxn


Zitat von spaxxn:
In Ansi würde dasselbe so aussehen:

SQL-Code:
  select a.AKTENNR
       , r.NAME
    from AKTEN a
    left
    join RECHTSANWALT r
      on r.ID = a.REID
   where (r.LAND='DEor r.LAND is null)
Bedenke bei Left-Joins, dass das folgendes Query, nicht dasselbe Ergebnis liefert, wie oben
SQL-Code:
  select a.AKTENNR
       , r.NAME
    from AKTEN a
    left
    join RECHTSANWALT r
      on r.ID = a.REID
     and (r.LAND='DEor r.LAND is null)
Du solltest dir dort genau angucken, welches Ergebnis du erwartest.
auch wenn ich mit den ANSI-JOINS nicht richtig warm werden kann, wo liegt denn da der Unterschied?
(oder meintest Du die Oracle-JOINs? Dann bleibt die Frage immer noch)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat