我在接受采访时被问过为什么我们需要左右连接,而我们可以通过改变表的顺序来使用它们中的任何一个来获得相同的结果?请帮我。
答案 0 :(得分:2)
答案 1 :(得分:1)
从技术上讲,语言并不需要两者兼顾。事实上,我避免right join
并且根本没有看到任何问题。出于两个原因,Left join
更可取。首先,逻辑对我来说更简单 - 将所有行保留在第一个表中,然后匹配第二个和后续表中的行。更重要的是,SQL查询从左到右解析,所以:
from a left join b left join c
被解析为
from (a left join b) left join c
如果你制定了一些复杂的例子,你会发现这种解析结构在left join
比right join
更直观。
当然,数据库支持这两种形式,因为ANSI标准要求它。而且,如果某些人有不同的偏好,他们可以根据需要使用right join
。