SELECT A.a,B.b FROM TABLE_A AS A
INNER JOIN TABLE_B AS B ON A.b=B.b
WHERE A.a NOT IN (SELECT a FROM TABLE_C)
/**
TABLE_C表里没有a这个字段,但是上面的语句不报错,而将子查询中的字段a改成一个
TABLE_A和TABLE_B里面没有的字段名就报错了。这是什么情况,
子查询里的字段a不是和From后面的表吗?
**/
------解决方案--------------------
而将子查询中的字段a改成一个
TABLE_A和TABLE_B里面没有的字段名就报错了?
如果你改成后的这个字段在3个表中都不存在 那肯定会报错,,但只要主表或从表其中一个有的话, 就不会报错。
------解决方案--------------------
没写别名的话,那个a就去table_a里找了
------解决方案--------------------
三个表里面只要有都不会报错,也不算是bug 就是解析的时候不够严格。