MySQL-如何组合三个表来获得计数



有三个表,我想得到一个用户的推文总数和他收到的推文总点赞数。

我试图将两个查询组合起来以获得我想要的内容,但失败了。已经看了前面的几个问题,但仍然搞不清楚。

  • 用户表
id 名称
1 用户1

我建议使用相关的子查询:

SELECT u.*,
(SELECT COUNT(*)
FROM Tweets t
WHERE u.id = t.UserId
) AS UserTweetCount,
(SELECT COUNT(*)
FROM Likes l
WHERE u.id = l.UserId
) AS UserLikeCount
FROM Users u
ORDER BY UserTweetCount DESC;

注意:为了提高性能,您需要Tweets(UserId)Likes(UserId)上的索引。

最新更新