【发布时间】:2018-08-05 13:00:53
【问题描述】:
这给出了一个错误:
SELECT
customerName, customerNumber, SUM(amount)
FROM
customers
LEFT JOIN
payments USING (customerNumber)
GROUP BY customers.customerName
ORDER BY customerName;
但是 'GROUP BY customers.customerNumber' 给出了正确的结果。
注意:两个表中都存在“customerNumber”,但没有“customerName”。
表“客户”的列:
customerNumber int(11) **PK**
customerName varchar(50)
contactLastName varchar(50)
contactFirstName varchar(50)
表格“付款”的列:
customerNumber int(11) **PK**
checkNumber varchar(50) **PK**
paymentDate date
amount decimal(10,2)
这是一个约束,我们可以在 JOIN 的情况下对两个表中都存在的列进行 GROUP BY 吗?
【问题讨论】:
-
您期望在输出中得到什么?简而言之,您可能会执行类似 SELECT...customerNumner, IFNULL(customerName, 'UNKNOWN').... 这样的操作,那么至少您将拥有 customerName 字段的值。
-
我期待:customerName、customerNumber、SUM(amount) 并在 'customers' 上使用 LEFT JOIN,因此 customerName 中的记录不能为 NULL。