SELECT customers.Name
FROM
(SELECT *
FROM customers AS c
INNER JOIN orders AS o
ON c.Id=o.CustomerId) AS co
WHERE customers.Name NOT IN co; #Syntax error: co
19:21:06错误代码:1064。sql语法有错误;在第70.000行的“co”附近检查与mysql服务器版本相对应的手册,以获得正确的语法
谢谢您!
2条答案
按热度按时间lqfhib0f1#
IN()
或者NOT IN()
predicate 必须具有带圆括号的值或子查询列表。你的 predicate 中没有paren。而且,即使有paren,也不能将列与这样的别名进行比较。在where子句的上下文中,列是标量,而别名是一组列。
我猜你在找没有订单的顾客。有两种方法:
或:
irlmq6kh2#
也许你想得到那些没有下订单的客户的名字
而不是将联接查询放在
NOT IN
你放在后面的接线员FROM
.如果是这种情况,请使用: