1. 程式人生 > >Magento如何獲取產品所在的所有分類?

Magento如何獲取產品所在的所有分類?

在Magento中一個產品可以加入多個分類中,那麼如何獲取產品所在的所有分類呢?又要用到SQL了:

1 select c.sku
2 ,GROUP_CONCAT(p.category_id SEPARATOR ',') as categories
3 from catalog_product_entity as c
4 inner join catalog_category_product as p
5 on c.entity_id = p.product_id
6 group by c.sku;

多個分類ID用逗號分開,查詢結果如下:

01 +-------------------+------------+
02 | sku               | categories |
03 +-------------------+------------+
04 | 1111              | 22         |
05 | 1112              | 22         |
06 | 1113              | 22         |
07 | 1114              | 22         |
08 | 1gbdimm           | 15,31      |
09 | 1tb7200           | 29         |
10 | 226bw             | 30         |
11 | 250gb5400         | 29         |
12 | 2gbdimm           | 15,31      |
13 | 384822            | 23         |
14 | 4fasd5f5          | 19         |
15 | 500gb5400         | 29         |
16 | 500gb7200         | 29         |
17 | 512dimm           | 15,31      |
18 | 750               | 12,26      |
19 | 8525PDA           | 8          |
20 +-------------------+------------+

這裡的GROUP_CONCAT()函式少見但有用,它可以把多行記錄,合併成一行。這在SQL中通常稱為:行轉列。