我有一个包含客户的表和另一个包含所有订单的表。
我想显示客户列表,并且旁边显示订单的总价值。
显然,我可以遍历客户,然后使用PHP运行另一个查询来获得每个客户的收入。我不认为这是有效的。
我希望实现这样的目标:
SELECT username, [SELCT sum(revenue) from orders where userID=userID] from customers
为此显示输出:
bob 10000
jeff 25000
alan 500
答案 0 :(得分:1)
SELECT a.username, SUM(b.revenue) totalRevenue
FROM customers a
LEFT JOIN Orders b
ON a.userID = b.UserID
GROUP BY a.username
这将列出所有有或没有Orders
的客户。
要进一步了解加入,请访问以下文章,
答案 1 :(得分:0)
你很亲密......
SELECT username, (SELECT sum(revenue) from orders where userID=c.userID) rev
from customers c
答案 2 :(得分:0)
您可以加入表格,并按订单名称
对它们进行分组SELECT o.username,
sum(revenue) as sum_revenue
from orders o
left outer join customers c on c.userid = o.userid
group by o.username
答案 3 :(得分:0)
无需使用该子选项。尝试这样的事情: -
SELECT customers.userID, customers.username, SUM(revenue)
FROM customers INNER JOIN orders ON customers.userID = orders.userID
GROUP BY customers.userID, customers.username