2017-05-10 18 views
0

我想與產品一起選擇類別我確實有多個類別相同的產品,我想顯示以列表的方式,如何獲得多個類別的單品清單

我曾嘗試使用子查詢和加入,但我發現重複記錄同一產品

結果,我很期待得到的是逗號分隔的所有類別的同一產品在一排

我試圖獲取其數據應該看起來如下

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

這裏是我的SQL小提琴鏈接

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

+0

什麼查詢你測試了這麼遠嗎? – dat3450

+0

我已經做了 SELECT P.PRODUCT_NAME, C.CATEGORY_NAME FROM PRODUCT_CATEGORY PC LEFT JOIN產品P ON(P.PRODUCT_ID = PC.PRODUCT_ID) LEFT JOIN CATEGORY C ON(C.CATEGORY_ID = PC.CATEGORY_ID ) ORDER BY P.PRODUCT_NAME ASC(你也可以參考小提琴) – Jazzzzz

+3

考慮處理應用程序代碼中的數據顯示問題 – Strawberry

回答

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