gpt4 book ai didi

mysql - Php Mysql Join 具有多个条件和空记录的两个表

转载 作者:可可西里 更新时间:2023-11-01 08:28:30 25 4
gpt4 key购买 nike

我已尝试从 2 个表中获取记录,但在我的第一个表为 ttreply 时未显示所需的输出

ttreply table

另一个表是 ttreplycount,其中存储的计数如下:

ttreplycount

我试图获取值,但它没有获取记录,因为我希望我的 mysql 查询如下:

SELECT r.id, r.userid, r.`reply`, coalesce(x.votes,0) as Votes 
FROM `ttreply` r left join
(SELECT sum(votes) as Votes from `ttreplyvotes` )x ON r.`post_id`=2

它向我展示了这样的输出:

Output

我需要的是这样的:

id  userid    reply                Votes
2 3 Testing 2nd reply -2
3 3 Testing 3nd reply 0
4 3 rewsf 0

任何帮助都会有所帮助。

最佳答案

您可以通过将条件移动到where 子句来获取您想要的行:

SELECT r.id, r.userid, r.`reply`, coalesce(x.votes,0) as Votes 
FROM `ttreply` r cross join
(SELECT sum(votes) as Votes from `ttreplyvotes` ) x
WHERE r.`post_id` = 2 ;

这将对所有三行都有 -2。为什么你只想要一行的总数?您如何确定哪一行获得总数?

编辑:

哦,我想我明白了:

SELECT r.id, r.userid, r.`reply`, coalesce(x.votes, 0) as Votes 
FROM `ttreply` r left join
(SELECT replyid, sum(votes) as Votes
FROM `ttreplyvotes`
GROUP BY replyid
) x
ON x.replyid = r.id
WHERE r.`post_id` = 2 ;

关于mysql - Php Mysql Join 具有多个条件和空记录的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32716354/

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