我試圖返回討論列表及其附加隊列(ids和名稱)。Mysql返回多個逗號分隔記錄
到目前爲止,我有以下幾點:
SELECT a.id as discussion_id,c.queue_id,e.queue_name
FROM support_discussions AS a
JOIN (
SELECT b.queue_id,b.discussion_id
FROM support_queues_discussions AS b
) AS c ON a.id=c.discussion_id
JOIN (
SELECT d.id,d.name AS queue_name
FROM support_queues AS d
) AS e ON c.queue_id=e.id
這將返回以下(預期):
discussion_id | queue_id |隊列名稱
1 | 1 |隊列名稱A
1 | 2 |隊列名稱乙
我真正想要做的是得到它的每一次討論恢復爲一行,與單獨的列沿着隊列ID和隊列名稱:
discussion_id | queue_id |隊列名稱
1 | 1,2 |隊列名稱A,隊列名稱B
有關如何以有效方式完成此操作的任何想法?
我知道一個事實,在隊列名稱中不會有任何逗號,因爲我列出了它們在我面前的所有列表;)我會很感激你對如何最好地執行此操作的想法..我不喜歡爲每個討論記錄進行單獨查詢的想法,所以旨在將它壓縮成一個查詢。 – RichW
問題是由GROUP_CONCAT生成的值的順序不是確定性的。換句話說 - 你不能假定queue_id中的第一個值將對應於queue_name中的第一個值。您可以嘗試通過執行類似select discussion_id,queue_id from ... join ...的方法來加載數據,其中位於discussion_id(id列表)中 - 這會使查詢數量減少很多 – keymone