需求
查询user
表中的 uid 等于3的记录,根据所得记录在inoculator
表中找到所有记录,然后根据inoculator
表中的id在order
表中找到所有记录。具体写法如下代码。
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