这是我的查询语句:
SELECT
最后执行的时候,mysql报出了
错误代码: 1111 Invalid use of group function
求大神指点,该怎么改这个sql语句?
使用[NOT]IN/EXISTS引发的子查询
子查询形式:
1.使用IN的子查询
2.使用[NOT]IN的子查询
语法结构:operand comparison_operator [NOT] IN (subquery)
=ANY 运算符与IN 等效,!=ALL或<>ALL运算符与NOT IN等效
3.使用[NOT]EXISTS的子查询(用的相对较少)
如果子查询返回任何行,EXISTS将返回TRUE,否则为FALSE
例,查找不是超极本的商品列表:
mysql> SELECT * FROM tdb_goods WHERE goods_cate NOT IN(SELECT goods_cate FROM tdb_goods WHERE goods_cate = '超级本');
你的子查询中使用了GROUP BY,得到的结果就不是一个值,而外层写的 WHERE department_id = ,只能等于一个值,所以会报错。
如果子查询得到多条记录,则应该改用in,若是考虑到in效率低则可以使用其他替代方案