如何将INNER JOIN替换为LEFT JOIN?附数据表与SQL示例
如何将INNER JOIN替换为LEFT JOIN
嗨,这事儿其实超简单,直接把你SQL语句里的INNER JOIN关键字换成LEFT JOIN就搞定了,修改后的完整代码如下:
SELECT dishinfo.id_cate, cate_descrip FROM dishinfo LEFT JOIN category ON dishinfo.id_cate = category.id_cate;
顺便给你理清楚两者的区别(结合你的表结构):
- 原来的
INNER JOIN只会返回两边表中都有匹配id_cate的记录——也就是说只有dishinfo里的id_cate在category表中存在对应记录时,这条数据才会被查出来。 - 换成
LEFT JOIN之后,会返回dishinfo表中的所有记录,哪怕某条记录的id_cate在category表中找不到匹配项,这时候对应的cate_descrip字段会显示为NULL。
举个例子:如果你的dishinfo里有一条记录的id_cate是3,但category表中没有id_cate=3的分类,那么用INNER JOIN时这条记录会被过滤掉,用LEFT JOIN时这条记录会被保留,cate_descrip的值是NULL。
内容的提问来源于stack exchange,提问作者Ivy
相关产品推荐
相关产品推荐

