Lassen Sie uns sagen, dass ich habe zwei einfache Tabellen mit den folgenden Spalten und Daten:LEFT JOIN - zwei Tabellen mit den gleichen Daten
Table 1 Table 2
year month year month
2017 01 2017 01
2016 12 2016 12
Der Primärschlüssel ist ein Verbundschlüssel, des Jahres und des Monats besteht .
Also eine klassische linke Join, gibt mir alle Daten in der linken Tabelle mit den passenden Zeilen in der rechten Tabelle.
Wenn ich trete ein links wie folgt aus:
select
t1.year, t2.month
from
table1 t1
left join table 2 t2 on (t1.year = t2.year and t1.month = t2.month)
Warum ich nur zwei Reihen erhalten haben ?? Soll ich nicht 4 Reihen bekommen ??
Tnx, Tom
't1' hat keine' god' Spalte. –
Sie sollten 2 Zeilen erhalten.Sie haben zwei Zeilen in 't1', die exakt mit zwei Zeilen in' t2' übereinstimmen. Was wäre Ihre erwartete Ausgabe, wo Sie 4 Datensätze erhalten würden? Vielleicht bekommen Sie LEFT OUTER JOIN mit einem CROSS JOIN verwechselt, wo Sie ein kartesisches Produkt bekommen würden? – JNevill
Ich bin ein wenig verwirrt, sollte die Abfrage nicht die Zeilen finden, die auf dem Primärschlüssel der ersten Tabelle in der zweiten Tabelle übereinstimmen? Da der linke Join immer alle Daten in der Tabelle 1 anzeigt, warum werden die Daten in der Tabelle 2 verworfen (auch wenn es gleich ist)? Tom –