mysql - 从一个表中查找不存在于另一个表中的记录,或者特定值的总和为 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
我收到一个错误:“组功能的使用无效”
我该如何解决这个问题?
解决方案
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。
我希望这有帮助。
推荐阅读
- r - 在 df2 的日期时间中使用 df1 的“小时”和“分钟”的条件合并 2 个数据帧
- java - java - 如何使用java中的列表结构来确定当前元素之后是否还有另一个元素
- javascript - JavaScript:如果字符串在第一个字母中包含元音,则遍历字符串并返回字符串+'ay'
- flutter - 将 NFC Mifare Card (ISO 14443-3A) 克隆到我的 Flutter 应用程序中
- javascript - 如何在异步 componentDidMount axios 调用中测试正确的状态更新?
- javascript - 将 base64 字符串绑定到 src 图像不适用于 vue
- excel - 无法将相交的行和列的数据复制到另一个工作表
- java - 如何从recycleview 中删除通知历史记录?
- html - 如何在非矩形 div 中进行分词?
- python - 如何在 Tensorflow 中有效地加入来自 TFRecords 的数据