我有四个要连接在一起的表,但是一个表我想 group_concat 两个特定记录。
Product_to_category PC P_ID C_ID 1 1 2 2 2 3 1 3 产品P P_ID P_PRICE 1 12 2 3 3 4 产品_描述 PD P_ID Language_id PD_Name 1 1 筹码 1 2 芯片(用不同的语言) 2 1 苏打水 2 2 苏打水(另一种语言) 类别 说明 CD C_ID Language_id CD_Name 1 1 垃圾食品 1 2 垃圾食品(另一种语言) 2 1 饮料 2 2 饮料(用不同的语言) 3 1 进口 3 2 导入(使用不同的语言) Product_attribute PA P_ID A_ID Language_ID A_TEXT 1 1 1 品牌 A 1 2 1 300克 1 3 1 番茄酱 1 1 2 品牌 A 1 2 2 300克 1 3 2 番茄酱(不同语言) 2 1 1 品牌 B 2 2 1 500毫升 2 3 1 樱桃 2 1 2 品牌 B 2 2 2 500毫升 2 3 2 樱桃(不同语言)
我想做的是如下:
P.P_ID | P.P_PRICE | PD.LANGUAGE_ID | PD.PD_NAME | CD.C_ID | CD.CD_NAME | Attribute
------------------------------------------------------------------------------------
1 | 12 | 1 | Chips | 1 | Junk Food | Brand A 300g
1 | 12 | 2 | Chips | 1 | Junk Food | Brand A 300g
2 | 3 | 1 | Soda | 2 | Drinks | Brand B 500mL
2 | 3 | 2 | Soda | 2 | Drinks | Brand B 500mL
2 | 3 | 1 | Soda | 3 | Imported | Brand B 500mL
2 | 3 | 2 | Soda | 3 | Imported | Brand B 500mL
1 | 12 | 1 | Chips | 3 | Imported | Brand A 300g
1 | 12 | 2 | Chips | 3 | Imported | Brand A 300g
基本上,我正在尝试使用类别和属性加载产品。只需在没有 Product_attribute PA 的情况下加入表格即可正常工作。我无法弄清楚如何将属性放在一起。下面是我的代码:
select P.P_ID, P.P_PRICE, PD.LANGUAGE_ID, PD.PD_Name, CD.C_ID, CD.CD_NAME,
(select group_concat(PA.A_TEXT) from PA where (PA.A_ID=1 or PA.A_ID=2) and PA.P_ID =
P.P_ID group by PA.P_ID) as attribute from PC left join PD on PC.P_ID = PD.P_ID
left join CD on PC.C_ID = CD.C_ID
left join P on P.P_ID = PC.P_ID
where PD.language_id = CD.language_id and (PD.language_id=1 or PD.language_id=2)
如果这有点令人困惑,我深表歉意
2013 年 4 月 26 日更新
这里总结了表格中的内容以及我想要完成的内容: Product_to_category PC 表将产品链接到他们的类别,并将类别链接到他们的产品。一个产品可以属于多个类别,一个类别可以属于多个产品。P 表中的产品有其产品值,如价格,其描述在 product_description PD 表中。一个产品可以有两行产品描述(双语)。产品在 product_attribute PA 表中也具有属性值,例如品牌(“品牌 A”、“品牌 B”)和体积/重量(“300g”、“500ml”)。一个产品可以属于多个类别,一个类别可以有多个产品。每个类别有两个描述(双语)。
如果需要进一步解释,请告诉我。