Mysql Left Vs.正确的外部加入

时间:2014-11-30 01:56:34

标签: mysql join

我在一次采访中得到了这个问题,询问Mysql中的左右连接。

为什么我们需要左连接才有正确,反之亦然?

说明: -

SELECT * FROM users LEFT JOIN profile ON (users.user_id= profile.user_id);

这将导致配置文件表的所有匹配数据和用户表的所有数据。现在我所做的就是使用RIGHT JOIN做同样的事情。

SELECT * FROM profile RIGHT JOIN users ON(profile.user_id = users.user_id)

这也会产生与上述查询相同的结果,即我在这里所做的是将左表移动到右边并从左到右表进行连接。

现在,当我可以使用左连接执行此操作时,我也可以使用右连接执行相同操作。是否需要两个连接,或者我们只能使用一个JOIN,即左或右来完成所有操作。

我将非常感谢得到任何知道的人的帮助,并且可以向我解释同样的事情。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我们需要左右连接的原因是因为它们都是用于操作/分析数据的工具。工具越多越好越容易。

有时,根据项目或问题,您可以使用一条或多条指令更容易理解/编写大量指令。

例如,尝试仅使用RIGHT或LEFT

重新措辞此句子
 SELECT (lotsOfFields ... ) FROM myTable
    INNER JOIN table1 on (moreFields)
    ...
    INNER JOIN table2 on (evenMoreFields)
    ...
    RIGHT JOIN table66 on (omgSoManyFields)
    ...
    LEFT JOIN table99 on (really?Fields)
    ...
    INNER JOIN table120 on (lulzFields)

如果它已经像这样工作那么无用,对吗?

同样的>和<运算符,+和 - ,几个逻辑运算符等。

这就像问为什么有这么多不同种类的刀具。我想用大砍刀吃晚餐会有点困难,或者用餐刀在野外开辟道路。