繁体   English   中英

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

[英]How to get multiple category for single product in list

我想选择商品的类别,但同一商品确实有多个类别,因此我试图以列表方式显示,

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

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

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

--------------------------------------------------------------
PRODUCT_NAME                          CATEGORY
--------------------------------------------------------------
Female Shoes - Blue color             Footwear, Sunglass
Female Sunglass Yellow color          Sunglass, Fashion, Eye protection

这是我的SQL Fiddle链接

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

在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM