を持つ2つのテーブルを私は次の列とデータを持つ2つの単純なテーブルがあることと言うことができます:左は参加 - 同じデータ
Table 1 Table 2
year month year month
2017 01 2017 01
2016 12 2016 12
を主キーは今年で構成複合キーと月です。
古典的な左結合は、左のテーブルのすべてのデータに、右のテーブルの一致する行を与えます。私は左を行う場合
は次のように参加:
select
t1.year, t2.month
from
table1 t1
left join table 2 t2 on (t1.year = t2.year and t1.month = t2.month)
は、なぜ私は2つだけの行を得るのですか?私は4行を得てはいけないのですか?
TNX、 トム
't1'には' god'カラムがありません。 –
2行を取得する必要があります。't1'に' t2'の2つの行と正確に一致する2つの行があります。あなたの予想されるアウトプットは、あなたが4レコードを取得する場所です。おそらく、LEFT OUTER JOINはデカルト積を得るクロスジョイントと混同されているでしょうか? – JNevill
私は少し混乱しています、クエリは、2番目のテーブルの最初のテーブルの主キーに一致するすべての行を見つけるべきではないですか?左結合は常に表1のすべてのデータを表示するため、表2のデータは(同じであっても)破棄されます。 Tom –