[英]MySQL - multiple GROUP_CONCAT on multiple TABLES (Server Error)
我有這樣的表和查詢: SQLFIDDLE
SELECT P.*,
GROUP_CONCAT(DISTINCT `trait_name` ORDER BY `trait_id` SEPARATOR ', ') AS traits,
GROUP_CONCAT(DISTINCT `filter_name` ORDER BY `filter_id` SEPARATOR ', ') AS filters
FROM `products` P
NATURAL JOIN
`personality_traits`
NATURAL JOIN
`product_to_traits`
NATURAL JOIN
`filters`
NATURAL JOIN
`product_to_filters`
GROUP BY P.`product_name`
我想 select 所有產品並顯示給定產品所屬的所有特征和過濾器(特征和過濾器在單獨的表中)。
這個解決方案在我的本地主機上運行得很好,但不幸的是在目標服務器上不行。
我還能怎么寫這個查詢?
編輯:
當我刪除其中一個 GROUP_CONCAT(以及相應的 NATURAL JOIN)時,我的服務器可以處理這個問題。 添加第二個 GROUP_CONCAT 時,服務器正在加載我的查詢一段時間,最后拋出“500 服務器遇到內部錯誤或配置錯誤,無法完成您的請求。”。 我有 OVH 的基本(個人)托管計划
您的代碼可能會失敗,因為它不是有效的聚合查詢: select
子句必須與group by
子句一致。
使product_id
成為表products
的主鍵。 然后,只需將GROUP BY
子句更改為:
GROUP BY p.`product_id`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.