首页 > 解决方案 > 从一个表中查找不存在于另一个表中的记录,或者特定值的总和为 0

问题描述

我正在尝试选择在另一个表中有条目的所有客户

或者

在另一个表中,字段值“计时器”的总和等于 0。

这是我的方法:

SELECT 
  *
FROM 
  rS_customer AS c
LEFT JOIN 
  rS_customer_log AS l
    ON c.id = l.customerID
WHERE
  l.customerID IS NULL
OR 
  sum(l.timer) = 0
GROUP BY 
  l.customerID

我收到一个错误:“组功能的使用无效”

我该如何解决这个问题?

标签: mysqlleft-join

解决方案


HAVING如果条件中有聚合,则必须使用。这就是您收到“无效使用组功能”错误的原因。

对于错误的数字,您的加入条件可能是原因。尝试像这样修改查询:

SELECT * FROM rS_customer WHERE id NOT IN (SELECT customerID FROM 

rS_customer_log GROUP BY customerID HAVING sum(timer) <> 0);

这将获取rS_customer不存在rS_customer_log或存在且总和timer不等于 0 的 s。

我希望这有帮助。


推荐阅读