簡體   English   中英

MySQL - 多個表上的多個 GROUP_CONCAT(服務器錯誤)

[英]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 的基本(個人)托管計划

當嘗試直接在 phpmyadmin 中運行查詢時,我收到: phpmyadmin 中的錯誤 謝謝!

您的代碼可能會失敗,因為它不是有效的聚合查詢: select子句必須與group by子句一致。

使product_id成為表products的主鍵。 然后,只需將GROUP BY子句更改為:

GROUP BY p.`product_id`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM