右连接等于左连接?

时间:2013-02-27 19:43:14

标签: mysql sql

有一段时间我只知道如何使用INNER JOIN,并且绝对不知道LEFT / RIGHT(OUTER)JOIN的作用。虽然,正如我刚刚读到的那样,我看不出右边的目的是什么?

在我看来,它与反向LEFT JOIN相同

如果我们按照我的例子:

SELECT t1.* FROM table1 t1 RIGHT JOIN table2 t2 ON t2.value = t1.value

与:

相同
SELECT t2.* FROM table2 t2 LEFT JOIN table1 t1 ON t1.value = t2.value

这是对的,还是我错过了什么?

3 个答案:

答案 0 :(得分:2)

是的,你是对的。来自Wikipedia

  

右外连接(或右连接)非常类似于左外连接   加入,除了表格的处理逆转。来自的每一行   “右”表(B)将至少出现在连接表中一次。   如果“左”表(A)中没有匹配的行,则会出现NULL   在A的列中,用于那些在B中没有匹配的记录。右边   outer join返回右表中的所有值并进行匹配   左表中的值(如果没有匹配的连接,则为NULL)   谓词)。

答案 1 :(得分:0)

是的,如果您搜索过,可以找到更多信息:

Difference between left join and right join in SQL Server

答案 2 :(得分:0)

Right join相当于反向left join

这不会使它变得无用。有些人可能更喜欢以这种方式编写查询。我不是那些人中的一个。就个人而言,我几乎从不使用右外连接。并且,没有查询应该同时具有左外连接和右外连接。

可能会有人愿意:

select . . .
from table t right outer join
      (very
       long
       subquery
       here
      ) t2
      on . . .

把桌子放在第二位。