如何获取列表中单个产品的多个类别

Jaz*_*zzz 0 mysql

我想选择类别和产品,我确实有同一产品的多个类别,并且我正在尝试以列表方式显示,

我确实尝试使用子查询和联接,但我得到了同一产品的重复记录

我期望得到的结果是逗号将同一产品的所有类别分隔在一行中

我正在尝试获取如下所示的数据

--------------------------------------------------------------
PRODUCT_NAME                          CATEGORY
--------------------------------------------------------------
Female Shoes - Blue color             Footwear, Sunglass
Female Sunglass Yellow color          Sunglass, Fashion, Eye protection
Run Code Online (Sandbox Code Playgroud)

这是我的 SQL Fiddle 链接

http://sqlfiddle.com/#!9/44dad2/1

Pio*_*r R 5

在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
Run Code Online (Sandbox Code Playgroud)

在 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
Run Code Online (Sandbox Code Playgroud)