2016-06-10 96 views
-1

選擇從多個表中的行我有一個MySQL數據庫2個表(「意見」和「回覆」)在mysql特定的順序

他們的模式:

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] 
+0

你可能想玩'group_concat'。 – Solarflare

+0

@Solarflare - 他們的方式我理解丹尼爾希望在評論後面的行中獲得回覆的問題 - 將使用group_concat創建包含所有回覆的單個列。 – PaulF

+0

@PaulF是的,我認爲你是對的,我誤解了。你的工會解決方案應該工作 – Solarflare

回答

2

您將需要連接兩個表&然後順序基礎上,commentID & replyID多個回覆。

在下面我添加了原始評論的虛擬replyID爲0。這些表使用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; 
+0

正確答案,只有這不稱爲「加入」,但「合併結果集」。 –

+0

@ThorstenKettner - 當然你是對的 - 當我解釋我的答案時,只是我不好的選擇。 – PaulF