MySQL - 获取评论和加入回复

时间:2016-10-22 01:35:26

标签: php mysql join

我试图通过使用JOIN的一个查询来获取文章的评论和回复但是不确定如何编写它,到目前为止我已经收到了评论但是每当我尝试获取回复时保持在阵列的相同深度内,所以我不确定这是否会起作用。

评论结构:

id | article_ID | user | text

回复结构:

id | comment_ID | user | text

这是我到目前为止的查询:

SELECT c.text, u.username, cr.text AS reply
FROM comments c 
LEFT JOIN user u
ON c.user = u.id
LEFT JOIN comments_replies cr 
ON cr.comment_ID = c.id
WHERE c.article_ID = :postID

这是结果转储的输出:

[0]=>
object(stdClass) {
    ["text"]=>
    string(7) "Comment"
    ["username"]=>
    string(5) "Woody"
    ["reply"]=>
    string(5) "reply"
}
[1]=>
object(stdClass) {
    ["text"]=>
    string(7) "Comment"
    ["username"]=>
    string(5) "Woody"
    ["reply"]=>
    NULL
}

我想要实现的目标:

[0]=>
object(stdClass) {
    ["text"]=>
    string(7) "Comment"
    ["username"]=>
    string(5) "Woody"
    ["comments"]=>
        [0]=>
            replier's username
            replier's text
        [1]=>
            replier's username
            replier's text
}

如果使用一个查询而不是使用多个查询或其他PHP代码,这是可能的,例如环路。

0 个答案:

没有答案