什么是LEFT和右连接SQL的原因

时间:2014-11-28 07:46:12

标签: mysql sql sql-server database join

例如:我有两张桌子

表代理      enter image description here

表格应用程序        enter image description here

1)

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

我在上面的查询中使用了Left join并得到了结果 enter image description here

2)

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

我在上面的查询中使用了Right join,并获得了与使用Left join相同的结果。喜欢 enter image description here

所以我的问题为什么左右加入mysql。我们可以通过左连接检索数据只交换表。那么为什么我们在查询中使用正确的联接。同样地,我们可以仅使用Righ连接而不使用左连接来实现目标。 那么在SQL中左右连接的原因是什么呢?任何人都可以解释逻辑吗?

3 个答案:

答案 0 :(得分:1)

它的对称,左和右外连接是可交换的。大多数人使用LEFT OUTER加入,因为它更容易思考"主表"左连接"其他数据" ...

答案 1 :(得分:1)

真的没有多大理由。事实上,MySQL文档说:

  

RIGHT JOINLEFT JOIN类似。为了使代码可以跨数据库移植,建议您使用LEFT JOIN而不是RIGHT JOIN

这只是一个选项,只有少数人可以使用。

答案 2 :(得分:1)

当你有一个更复杂的语句并且想要用正确的连接添加一些东西时,你可能不想仅因为你只有左连接来交换这些语句。 也可以使查询更难阅读。