MySQL:如何获取评论内容和帖子标题

时间:2013-08-02 18:29:17

标签: php mysql

在问答系统中,我试图对问答的评论和评论的标题进行评论。

我到目前为止已经完成了评论的内容,但现在的问题是,如果评论是答案,那么它没有获得问题标题。那么我怎样才能编写查询,以便从问答中得到所有评论,并获得问题的标题。

到目前为止我已经完成了。

SELECT c.postid, p.title, c.type, c.userid, c.content, c.parentid, u.handle, u.email, u.avatarblobid, u.avatarwidth, u.avatarheight FROM qa_posts p
JOIN qa_posts c ON (p.postid = c.parentid)
LEFT JOIN qa_users u ON c.userid = u.userid
WHERE c.type = 'C'
AND p.flagcount = 0
ORDER BY c.postid DESC
LIMIT 5

这是我的表格图片,您可以找到type列分别用于Q,C和A问题,评论和答案。

enter image description here

非常感谢

编辑:--------------------------------------------- ----------------

我试图有条不紊地检查但是这段代码也行不通..我希望你的专家会指导你更正这段代码

JOIN qa_posts AS parentposts
ON qa_posts.postid=(
        CASE
            LEFT(perentposts.type, 1)
            WHEN 
                'A'
            THEN 
                parentposts.parentid 
            ELSE 
                parentposts.postid
        END
    )
JOIN qa_posts AS cposts 
ON parentposts.postid=cposts.parentid
LEFT JOIN qa_users AS cusers 
ON cposts.userid=cusers.userid 

JOIN (SELECT postid FROM qa_posts 
WHERE type=$
ORDER BY qa_posts.created DESC 
LIMIT 5) 
y ON cposts.postid=y.postid 
WHERE qa_posts.type='Q' 
AND ((parentposts.type='Q') OR (parentposts.type='A'))

1 个答案:

答案 0 :(得分:0)

试试这个

 SELECT * FROM qa_posts p
    LEFT JOIN qa_users u ON c.userid = u.userid
     WHERE p.type = 'C'
       AND p.flagcount = 0
       ORDER BY p.postid DESC
       LIMIT 5