Mysql按特定顺序从多个表中选择行

时间:2016-06-10 13:25:30

标签: mysql join union

我在mysql数据库中有2个表("评论"和"回复")

他们有模式:

comments: id,userId,text
replies: id,userId,commentId,text

我需要一个mysql查询来获取评论表中的所有评论,并在每个评论之后,回复表中的相应回复......

所以如果我们在回复表中有[comment 1] and [comment 2] in the comments table, and [reply 1] (to comment 1) and [reply 2] (to comment2)

然后它会返回:

    [comment 1]
    [reply 1]
    [comment 2]
    [reply 2]

1 个答案:

答案 0 :(得分:2)

您需要加入两个表格&然后根据commentID& amp;多个回复的replyID。

在下面我为原始评论添加了一个0的虚拟replyID。使用UNION ALL连接表。请注意,我已重命名评论表的原始ID列&回复id,这样他们就不会发生冲突。

SELECT id commentID, userID, text, 0 replyID FROM test.comments
UNION ALL
SELECT commentID, userID, text, id replyID FROM test.replies
ORDER BY commentID, replyID;