MySql里left join和right join的区别

LEFT JOIN

从左表里返回所有匹配的数据,即使在右边里没有匹配的


MySql里left join和right join的区别_第1张图片
image.png

比如:

MySql里left join和right join的区别_第2张图片
image.png
MySql里left join和right join的区别_第3张图片
image.png
SELECT * FROM `user` u LEFT JOIN `vocation` v ON u.userId = v.userId 

查询结果如下


MySql里left join和right join的区别_第4张图片
image.png

这里用ON不能用WHERE:
ON用作连接条件,WHERE只能用于筛选结果,比如SELECT * FROM `user` u LEFT JOIN `vocation` v ON u.userId = v.userId WHERE u.`username` = '韦小宝'

MySql里left join和right join的区别_第5张图片
image.png

RIGHT JOIN

与LEFT JOIN相反,从右表里返回所有匹配的数据,即使在左边里没有匹配的


MySql里left join和right join的区别_第6张图片
image.png
SELECT * FROM `user` u RIGHT JOIN `vocation` v ON u.userId = v.userId 
MySql里left join和right join的区别_第7张图片
image.png

INNER JOIN/ JOIN

返回左表、右表里共有的部分


MySql里left join和right join的区别_第8张图片
image.png

比如

SELECT * FROM `user` u INNER JOIN `vocation` v ON u.userId = v.userId 
MySql里left join和right join的区别_第9张图片
image.png

你可能感兴趣的:(MySql里left join和right join的区别)