Laden...

LEFT OUTER JOIN funktioniert nicht !!!

Erstellt von mrennen vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.276 Views
M
mrennen Themenstarter:in
166 Beiträge seit 2008
vor 9 Jahren
LEFT OUTER JOIN funktioniert nicht !!!

verwendetes Datenbanksystem: <Oracle>

Hallo zusammen

ich habe ein komisches Verhalten bei einer Abfrage

SELECT COUNT(*) FROM table1; = 38000 Datensätze
SELECT * FROM table1; = 38000 Datensätze

SELECT COUNT(*) FROM table2; = 131461 Datensätze
SELECT * FROM table2; = 131461 Datensätze

Jetzt der Fehler:

SELECT COUNT(*) FROM table1 a
LEFT OUTER JOIN table2 b ON b.ID = a.ID; = 38819 Datensätze

Soweit ich das gelernt habe wird alles aus der linken Tabelle angezeigt und falls in der rechten etwas vorhanden ist, wird das angezeigt.

Kann mir da jemand auf die Sprünge helfen? Insgesamt sind es 5 Tabellen die aufeinander verweisen. Wichtig ist dass nur die Anzahl der ersten Tabelle stimmt.

T
314 Beiträge seit 2013
vor 9 Jahren

Hi,

in table2 kommt jede Id offensichtlich 0-n mal vor.

Der Titel ist im übrigend denkbar schlecht gewählt. LEFT OUTER JOIN funktioniert ganz sicher so wie er soll 😃.

C
2.122 Beiträge seit 2010
vor 9 Jahren

Ein JOIN verbindet alle Datensätze miteinander die zum Kriterium passen. In deinem Fall verknüpft er alles aus a mit allem aus b was gleiche ID hat.
Wenn in b 5 Datensätze mit der selben ID aus a sind, dann kriegst du den Datensatz aus a mit allen 5 Datensätzen aus b kombiniert.

Ich vermute das ist dein Denkfehler.