另一个查询中的SQL查询

时间:2013-01-25 15:55:12

标签: mysql

我有一个包含客户的表和另一个包含所有订单的表。

我想显示客户列表,并且旁边显示订单的总价值。

显然,我可以遍历客户,然后使用PHP运行另一个查询来获得每个客户的收入。我不认为这是有效的。

我希望实现这样的目标:

SELECT username, [SELCT sum(revenue) from orders where userID=userID] from customers

为此显示输出:

bob      10000
jeff     25000
alan     500

4 个答案:

答案 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