一、sql的left join 、right join 、inner join之间的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
例如:
A表如下:
在这里插入图片描述
B表如下:
1、left join
sql语句如下:
SELECT * from A LEFT JOIN B ON A.A_age=B.B_age
结果如下:
结果说明:left join是以A表的记录为基础的,A可以看成右表,left join是以左表为准的。所以左表A的记录会全部显示出来,而右表B只会显示符合搜索条件的记录(A.A_age=B.B_age)。B表中记录不足的地方均为NULL。
2、right join
sql语句如下:
SELECT * from A RIGHT JOIN B ON A.A_age=B.B_age
结果如下:
结果说明:
通过观察我们就会发现,和left join的结果刚好相反,right join是以右表(B)为基础的,A表不足的地方用NULL填充。
3、inner join
sql语句如下:
SELECT * from A INNER JOIN B ON A.A_age=B.B_age
结果如下:
结果说明:
这里只显示了两个表中符合 A.A_age=B.B_age的记录,这说明 inner join 不以谁为基础,它只显示符合条件的记录。