报错信息:

通过核对 LEFT JOIN ON后面条件, 发现等号后面写成了字符串,修改成数值型条件即可。
补充学习:
一、left join on
on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
二、left join on and
(1)如果and语句是对左表进行过滤的,那么不管真假都不起任何作用。
(2)如果and语句是对右表过滤的,那么左表所有记录都返回,右表筛选以后再与左表连接返回。
三、left join on where
where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了。
(1)此时相当于inner join on
(2)此时on后的条件用来生成左右表关联的临时表,where后的条件对临时表中的记录进行过滤。
四、inner join on and 和 inner join on where
无区别,不管是对左表还是右表进行筛选,on and 和 on where都会对生成的临时表进行过滤。
---------------------
TKS科普原文:https://blog.youkuaiyun.com/hkhhkb/article/details/81034510
本文详细解析了SQL中LEFT JOIN ON, LEFT JOIN ON AND, LEFT JOIN ON WHERE及INNER JOIN ON AND/WHERE的使用场景与区别。特别指出,LEFT JOIN ON后的条件应确保类型正确,避免将数值型条件误写为字符串,同时深入探讨了各种条件下数据如何被筛选与返回。

7075

被折叠的 条评论
为什么被折叠?



