gpt4 book ai didi

php - 在指定 WHERE 之前没有 MySQL 结果

转载 作者:行者123 更新时间:2023-12-01 00:55:42 25 4
gpt4 key购买 nike

多年来,我一直在使用简单的 MySQL 命令,并且想使用更复杂的命令。我已经接受了重写我的一些旧代码的任务,但我看不到这里发生了什么。

我正在尝试将两个表合并为一个结果,第二个表仅提供“计数”。

TABLE customers:
customerID, name, boxID
TABLE codes:
boxID, code, retrieved

我想要的正是我从 SELECT * FROM 客户那里得到的,但我想要一个额外的列,其中包含代码表中 boxID 相同的所有代码的 count()。

这是我当前的查询;

SELECT customers.*, count(codes.code) as codesused 
FROM customers
INNER JOIN codes
ON customers.boxID = codes.boxID
WHERE codes.retrieved = 1

在我添加“WHERE customers.customerID = 'x'”之前,结果为 NULL。谁能解释为什么我不能从上面的代码中得到我想要的东西?

最佳答案

当您将聚合函数与其他字段结合使用时,您必须使用 group by 子句。您可以这样查询;

SELECT customerID, name, boxID, count(codes.code) as codesused 
FROM customers
INNER JOIN codes ON customers.boxID = codes.boxID
GROUP BY customerID, name, boxID, codesused
HAVING codes.retrieved = 1

而且你不能将 where 子句与 group by 一起使用,所以你必须使用 HAVING

关于php - 在指定 WHERE 之前没有 MySQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11106262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com