1

我有一个这样的sql语句

select users.id, users.username, count(orders.number) as units from users inner join orders on orders.user_id = users.id where users.id = 1;

现在这将是一个用户 ID 的数量或单位。

我如何获得所有用户以及他们购买的数量或单位。where 关键字需要一个值和一个特定的值,我怎么能说所有用户。

非常感谢您阅读本文:)

4

3 回答 3

3

你应该使用GROUP BY

     SELECT users.id, users.username, count(orders.number) as units 
     FROM users 
     INNER JOIN orders on orders.user_id = users.id 
     GROUP BY users.id, users.username

您可以在此处查看更多信息:GROUP BY(聚合)函数

于 2013-06-09T07:02:04.380 回答
2

您需要聚合数据,为此使用 GROUP BY

        SELECT
        users.id, 
        users.username,
        count(orders.number) as units 
        FROM users  
        JOIN orders 
        ON orders.user_id = users.id
        GROUP BY users.id, users.username;

在这里查看文档

于 2013-06-09T07:02:31.903 回答
1

如果您需要所有用户,请删除 where 子句并按用户 ID 分组

select users.id, users.username, count(orders.number) as units 
from users inner join orders 
on orders.user_id = users.id 
group by users.id,users.username;
于 2013-06-09T07:03:50.740 回答