2015-09-22 31 views
3

我试图从2个表读取记录,但它没有显示所需的输出在我的第一个表是ttreplyPHP的MySQL的加入多codition和空记录两个表

ttreply table

而另一台是ttreplycount其中count存储如下:

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 

任何帮助将是有益的。

+0

你如何确定哪一行获得的选票价值? –

回答

2

您可以通过条件移动到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 ;