SQL中LEFT和Right join的原因是啥

Posted

技术标签:

【中文标题】SQL中LEFT和Right join的原因是啥【英文标题】:What is reason of LEFT and Right join in SQLSQL中LEFT和Right join的原因是什么 【发布时间】:2015-01-26 20:13:46 【问题描述】:

例如:我有两张桌子

表代理

表应用

1)

select a.agentID, agent_nm from agent a
left join application ap on (ap.agentID=a.agentID);

我在上面的查询中使用左连接,得到的结果是

2)

select a.agentID, agent_nm from application ap
right join agent a  on (ap.agentID=a.agentID);

我在上面的查询中使用了右连接,得到的结果与使用左连接得到的结果相同。喜欢

所以我的问题是为什么左右加入mysql。我们可以用左连接检索数据,只交换表。那么为什么我们在查询中使用正确的连接。同样的方式,我们可以只使用右连接而不使用左连接来实现目标。 那么SQL中左右连接的原因是什么。谁能解释一下逻辑?

【问题讨论】:

@Jens 感谢有问题的编辑。 右连接在连接多个(多于两个)表时会很有用 What's the difference between INNER JOIN, LEFT JOIN, RIGHT JOIN and FULL JOIN? 【参考方案1】:

它是对称的,LEFT 和 RIGHT 外连接是可交换的。大多数人使用 LEFT OUTER 联接,因为更容易认为“主表”左联接“附加数据”...

【讨论】:

【参考方案2】:

真的,没什么原因。事实上,MySQL 文档说:

RIGHT JOIN 的工作方式类似于 LEFT JOIN。为了保持代码跨数据库的可移植性,建议您使用LEFT JOIN 而不是RIGHT JOIN

这只是你的一种选择,少数人利用。

【讨论】:

【参考方案3】:

当您有一个更复杂的语句并且想要添加一些右连接的内容时,您可能不想仅仅因为您只有左连接而交换语句。 还可以使查询更难阅读。

【讨论】:

以上是关于SQL中LEFT和Right join的原因是啥的主要内容,如果未能解决你的问题,请参考以下文章