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的原因是啥的主要内容,如果未能解决你的问题,请参考以下文章
SQL中left join on 、right join on、inner join on之间的区别
SQL语句(inner join,left out join,right out join三者的不同
SQL语句中LEFT JOIN和RIGHT JOIN 以及INNER JOIN的区别
sql的left join right join inner join之间的区别