gpt4 book ai didi

mysql - 使用 group by 时 SQL 查询无法运行

转载 作者:行者123 更新时间:2023-11-29 07:22:02 26 4
gpt4 key购买 nike

我构建这个查询是为了显示一个分支机构有多少员工和客户,它给了我重复项,因此我需要对它们进行分组。但是,当我添加分组依据时,查询无效。有人知道为什么吗?

  SELECT B.branchID, B.branchName, COUNT(E.staffNo) AS "No. Of Employees", COUNT(C.customerID) AS "No. Of Customers"
FROM Branch B, Employee E, Customer C
WHERE E.employeeBranchID = B.branchID
AND B.branchID = C.customerBranchID
GROUP BY B.branchID;

最佳答案

这个查询最好写成:

SELECT B.branchID, B.branchName, COUNT(E.staffNo) AS "No. Of Employees", COUNT(C.customerID) AS "No. Of Customers"
FROM Branch B JOIN
Employee E
ON E.employeeBranchID = B.branchID JOIN
Customer C
ON B.branchID = C.customerBranchID
GROUP BY B.branchID, B.branchName;

如果您处于 ANSI 模式,则 MySQL 的行为与大多数其他数据库类似,并且会返回错误,因为 B.branchName 未聚合。

注释:

  • 使用明确的JOIN语法。切勿在 FROM 子句中使用逗号。
  • 所有非聚合列均位于 GROUP BY 中。
  • 如果 branchId 被声明为 branch 上的主键或唯一键,则您的原始查询符合 ANSI 标准。然而,大多数数据库仍然不接受查询。

关于mysql - 使用 group by 时 SQL 查询无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35796223/

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