gpt4 book ai didi

mysql - 如何获取mysql查询中每条记录的计数

转载 作者:太空宇宙 更新时间:2023-11-03 10:36:08 24 4
gpt4 key购买 nike

我有两个 mysql 表,usersorders 来跟踪每个用户下的订单。

我想获取每个用户的列表,以及订单总数。

对于个人,我可以使用:

SELECT users.name, (select count(*) from orders where orders.users_id = 1) as total
from users
where users.id = 1

有没有一种有效的方法可以同时为所有 用户执行此操作?

最佳答案

您可以使用相关子查询来完成。

SELECT users.name, (select count(*) from orders where orders.users_id = users.id) as total
from users

但更好的方法是使用连接。

SELECT users.name, IFNULL(COUNT(orders.id), 0) AS total
FROM users
LEFT JOIN orders ON orders.users_id = users.id
GROUP BY users.id

加入聚合的子查询实际上可能比加入后聚合更好:

SELECT u.name, IFNULL(o.total, 0) AS total
FROM users as u
LEFT JOIN (
SELECT users_id, COUNT(*) AS total
FROM orders
GROUP BY users_id) AS o ON u.id = o.users_id

关于mysql - 如何获取mysql查询中每条记录的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com