我想选择类别和产品我确实有多个类别用于同一产品并且我试图以列表方式显示,
我确实尝试过使用子查询和连接,但我得到了同一产品的重复记录
我期望得到的结果是用逗号分隔一行中同一产品的所有类别
我正在尝试获取如下所示的数据
--------------------------------------------------------------
PRODUCT_NAME CATEGORY
--------------------------------------------------------------
Female Shoes - Blue color Footwear, Sunglass
Female Sunglass Yellow color Sunglass, Fashion, Eye protection
这是我的 SQL Fiddle 链接
最佳答案
在MySQL中:
SELECT
P.PRODUCT_NAME,
GROUP_CONCAT(C.CATEGORY_NAME separator ',')
FROM
PRODUCT_CATEGORY PC
LEFT JOIN PRODUCT P ON (P.PRODUCT_ID = PC.PRODUCT_ID)
LEFT JOIN CATEGORY C ON (C.CATEGORY_ID = PC.CATEGORY_ID)
GROUP BY
P.PRODUCT_NAME
ORDER BY
P.PRODUCT_NAME ASC
在 Oracle 11g 中:
SELECT
P.PRODUCT_NAME,
wm_concat(C.CATEGORY_NAME)
FROM
PRODUCT_CATEGORY PC
LEFT JOIN PRODUCT P ON (P.PRODUCT_ID = PC.PRODUCT_ID)
LEFT JOIN CATEGORY C ON (C.CATEGORY_ID = PC.CATEGORY_ID)
GROUP BY
P.PRODUCT_NAME
ORDER BY
P.PRODUCT_NAME ASC
关于mysql - 如何为列表中的单个产品获取多个类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43884701/