我有一个这样的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 关键字需要一个值和一个特定的值,我怎么能说所有用户。
非常感谢您阅读本文:)
你应该使用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(聚合)函数
您需要聚合数据,为此使用 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;
在这里查看文档
如果您需要所有用户,请删除 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;