有三个表,我想得到一个用户的推文总数和他收到的推文总点赞数。
我试图将两个查询组合起来以获得我想要的内容,但失败了。已经看了前面的几个问题,但仍然搞不清楚。
- 用户表
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)
上的索引。