我在做这些连接:
env: prod
我不确定联接会如何解决,而the official documentation就像是在阅读我的象形文字。
我的猜测是首先from #lps_at_lines2 as l2
left join jobmatl as jm on l2.item = jm.item
inner join job as j on jm.job = j.job
and jm.suffix = j.suffix
获得#lps_at_lines2
'到LEFT JOIN
然后以某种方式jobmatl
获得job
'到jm之后。这是对的吗?
答案 0 :(得分:5)
在FROM
子句中,JOIN
从左到右解析 - 英文阅读顺序。因此,LEFT JOIN
在INNER JOIN
之前处理(逻辑上)。
INNER JOIN
条件包括:
jm.job = j.job and jm.suffix = j.suffix
这些是LEFT JOIN
的第二个表格。由于NULL
值失败,INNER JOIN
正在将前面的LEFT JOIN
转换为INNER JOIN
。换句话说,您应该使用INNER JOIN
获得相同的结果。
请注意,您可以使用括号调整优先级,但您的查询版本不会这样做。
通常,在混合内部联接和左联接时,我首先包括所有内部联接,然后LEFT JOIN
添加其他表。