Mysql

獲取所有帶有關聯標籤的文章,沒有重複

  • December 14, 2018

兩張桌子。PostTag。多對多雙向關係。

Post Table              Tag Table             Post_Tag Pivot Table
---------------         ------------          -----------------
id   content            id   name             id_post   id_tag
---------------         ------------          -----------------
1   hey there           1    php                1        1
                        2    python             1        2

我想獲取所有帶有標籤的文章。

我試過這個:

SELECT P.title, T.tag
From Post P
JOIN Tag T
ORDER BY P.id DESC

它有效,但它給出了重複項:

hey there, php
hey there, python

有沒有辦法在這裡將標籤組合成一行。謝謝

您沒有提供 DDL 和範例數據,因此我們無法測試任何內容。此外,還不清楚什麼是連接謂詞,但我認為您正在尋找GROUP_CONCAT,類似於(虛擬碼):

SELECT P.Title, GROUP_CONCAT(T.Tag SEPARATOR ',') AS Concatenated_Tags
FROM Post P INNER JOIN Tag T ...
GROUP BY P.Title;

高溫高壓

引用自:https://dba.stackexchange.com/questions/225022