我想從1個Mysql query
中的3/4個表中獲取以下數據,想知道是否有可能?這些表是Mysql左連接多個1到多個表
TOPIC
topicid (FK)(PK)
groupid
topic
user
LIKED
likeid
topicid (FK)
user
COMMENT
commentid (PK)
topicid (FK)
comment
user
我寫我的主題,並存儲在具有唯一topicid的主題表。我使用groupid將每個主題分組。 其他表格每個topicid可能有0個或更多的數據。
我正在嘗試獲取特定組的每個主題,並從相關表中獲取其他數據。我檢查了How to left join multiple one to many tables in mysql?,但沒有什麼想法,但這是爲了計數,而我想從該表(喜歡的用戶)和(用戶及其評論)獲取詳細信息。
我已經試過
SELECT t.topicid,
topic,
group_concat(DISTINCT likeid,l.user SEPARATOR '|'),
group_concat(DISTINCT commentid,comment,c.user SEPARATOR '|') AS comments
FROM TOPIC t
LEFT JOIN LIKE l ON l.topicid = t.topicid
LEFT JOIN COMMENT c ON c.topicid = t.topicid
WHERE t.groupid='some_value'
GROUP BY t.topicid
雖然這部分工作如我確實瞭解了細節,但只有在小組中有一個主題的情況下。如果組中有2個或更多主題,則concat
詳細信息僅存儲在第一條記錄中,而後面的主題不會顯示任何喜歡和評論。
是否有人可以幫我解決這個或任何特定Mysql function
我缺少
我很困惑。您正在通過'topicid'加入和分組。然後你抱怨多個主題在一個組中時沒有獲得多個值。你想按groupid排序嗎? –
您可以使用示例數據構建一個sqlfiddle,並顯示期望的結果應該是什麼? – Barmar
@Barmar我在[link](http://sqlfiddle.com/#!2/9ab57/1/0)上試過sqlfiddle。 –