MySQL左右外连接的区别和三表以上连接的写法

60 阅读1分钟

需求

查询user表中的 uid 等于3的记录,根据所得记录在inoculator表中找到所有记录,然后根据inoculator表中的idorder表中找到所有记录。具体写法如下代码。

SELECT * FROM `user` 
RIGHT OUTER JOIN `inoculator` ON `user`.uid = `inoculator`.uid 
RIGHT OUTER JOIN `order` ON `inoculator`.id = `order`.id
WHERE `inoculator`.uid  = 3

过程

一开始使用的左连接,会出现order中没有记录,显示null的情况。左连接会显示所有在左表中有数据的记录,右表如果没有记录对应右表的列全部列显示null。

总结

含义不同;使用方法不同;运行空值不同。

左连接会以左表列为主,只要左表中有记录,即使右表没有数据也会全部显示,并显示为null

右连接会以右表列为主,只要右表中有记录就会显示出来,如果左表没有数据,左表对应的列就会显示null

参考文章

www.eefocus.com/ask/497481.…