1
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

4 回答 4

1

您没有RIGHT JOIN在查询 2 中使用。原因LEFT JOININNER JOIN结果相同是因为 table 的所有记录在 tablebranch上至少有一个匹配项user_mast

INNER JOIN和之间的主要区别在于,即使它们在边表上没有匹配项,LEFT JOINLEFT JOIN仍会在边上显示记录。LEFTRIGHT

SQLFiddle Demo(区别

于 2012-10-04T10:28:50.590 回答
0

由于您将左表中的所有 branch_id 与右表的 branch_id 匹配

于 2012-10-04T10:33:14.347 回答
0

因为您的左表有 2 条记录,而右表只有 2 条匹配记录。因此,在这种情况下,如果使用左连接,它将获取与连接相同的结果。如果交换表,那么您将知道左连接的用法。

于 2012-10-04T10:31:02.523 回答
0

看看这个,它对理解 JOIN 有很大帮助

http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

于 2012-10-04T10:29:15.987 回答