当我进行这样的查询时:
SELECT payment.customer_id, COUNT(payment.customer_id), SUM(payment.amount)
FROM payment
GROUP BY customer_id
ORDER BY SUM(payment.amount) DESC
LIMIT 10它工作得很好,但是当我尝试连接另一个表中的字段时,它失败了:
SELECT payment.customer_id, customer.email COUNT(payment.customer_id), SUM(payment.amount)
FROM payment
GROUP BY customer_id
ORDER BY SUM(payment.amount) DESC
LIMIT 10
JOIN customer
ON payment.customer_id = customer.customer_id我做错了什么?如何从customer表添加email列?
发布于 2018-03-12 16:57:54
为了加入,你必须在From关键字之后使用它,如下所示
Select Table1.customer_id,Table1.email,Table1.amt from (
SELECT payment.customer_id, customer.email COUNT(payment.customer_id) email, SUM(payment.amount) amt
FROM payment
GROUP BY customer_id
ORDER BY SUM(payment.amount) DESC
LIMIT 10
) Table1 JOIN customer
ON Table1.customer_id = customer.customer_id发布于 2018-03-12 17:13:14
您把JOIN放错地方了;它应该放在FROM子句中。您的SELECT子句中也缺少逗号。
SELECT c.customer_id, c.email, COUNT(p.payment_id), SUM(p.amount)
FROM customer c
JOIN payment p ON p.customer_id = c.customer_id
GROUP BY c.customer_id
ORDER BY SUM(p.amount) DESC
LIMIT 10;注意,我在FROM和JOIN中交换了表。这是没有必要的,但在我看来感觉好一点,说:给我的客户与他们的支付数据。如果您也想要没有支付数据的客户,请切换到LEFT JOIN。
https://stackoverflow.com/questions/49231258
复制相似问题