让我们说,我有以下的列和数据两个简单的表:LEFT JOIN - 两个表使用相同的数据
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)
为什么我得到的只有两行?我不应该得到4行?
TNX, 汤姆
't1'没有'god'列。 –
你应该得到2行。't1'中有两行与't2'中的两行完全匹配。你预期的输出是什么,你会得到4条记录?也许你正在将LEFT OUTER JOIN与CROSS JOIN混淆,你会得到一个笛卡尔产品? – JNevill
我有点困惑,不应该查询查找在第二个表中的第一个表的主键上匹配的行吗?由于左连接总是要显示表1中的所有数据,为什么表2中的数据被丢弃(即使它是相同的)? Tom –