gpt4 book ai didi

mysql - SQL:如何包含不存在的记录

转载 作者:行者123 更新时间:2023-11-29 06:46:20 25 4
gpt4 key购买 nike

我正在查询,按点赞数对帖子进行排序。我有表 postsvotes(post_id, user_id, vote),其中 vote 可以是 1 或 -1。所以现在我的问题是,如果帖子没有任何赞成票,它根本不会显示在结果中。
我的查询:

SELECT P.* FROM `vicoteka-api`.posts P
INNER JOIN (
SELECT post_id, COUNT(*) vote_count FROM `vicoteka-api`.votes
WHERE vote = 1 GROUP BY post_id
) V ON P.id = V.post_id
ORDER BY V.vote_count DESC

如何包含 votes 数据透视表中不存在的帖子?

最佳答案

使用left joincoalesce来获取没有投票的帖子。

SELECT P.*,COALESCE(v.vote_count,0) as vote_count 
FROM `vicoteka-api`.posts P
LEFT JOIN (SELECT post_id, COUNT(*) vote_count
FROM `vicoteka-api`.votes
WHERE vote = 1
GROUP BY post_id
) V ON P.id = V.post_id
ORDER BY vote_count DESC

关于mysql - SQL:如何包含不存在的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49262540/

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