为什么左连接和内连接返回相同的结果

时间:2012-10-04 10:26:38

标签: mysql

branch_id   branch_name
1       Branch A
2       Branch B

user_id username    branch_id
1   abc     1
2   def     1
3   ghi     2
4   jkl     1
5   lmn     2
6   opq     2

查询1

query1="select a.branch_id,b.branch_id,a.branch_name from branch a LEFT JOIN user_mast b on a.branch_id=b.branch_id";

查询2

$query2="select a.branch_id,b.branch_id,a.branch_name from branch a INNER JOIN user_mast b on a.branch_id=b.branch_id";

为什么LEFT JOIN和INNER JOIN结果相同。

4 个答案:

答案 0 :(得分:1)

您在查询2中未使用RIGHT JOINLEFT JOININNER JOIN结果相同的原因是因为表branch的所有记录至少有一个在表user_mast上匹配。

INNER JOINLEFT JOIN之间的主要区别在于LEFT JOIN仍然会显示LEFT方的记录,即使它们与RIGHT不匹配边桌。

SQLFiddle Demo (the difference)

答案 1 :(得分:0)

答案 2 :(得分:0)

因为你的左表有2条记录而右表只有2条匹配的记录。因此,在此场景中,如果左连接,它将获取与join相同的结果。如果您交换表,那么您将知道左连接的使用。

答案 3 :(得分:0)

因为左表中的所有branch_id都与右表的branch_id匹配