結合したい 4 つのテーブルがありますが、2 つの特定のレコードを group_concat したいテーブルが 1 つあります。
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 Product_Description PD P_ID Language_id PD_Name 1 1 チップ 1 2 チップ (別の言語で) 2 1 ソーダ 2 2 ソーダ (別の言語で) Category Description CD C_ID Language_id CD_Name 1 1 Junk Food 1 2 Junk Food (In a different language) 2 1 Drinks 2 2 Drinks (In a different language) 3 1 Imported 3 2 Imported (In a different language) Product_attribute PA P_ID A_ID Language_ID A_TEXT 1 1 1 Brand A 1 2 1 300g 1 3 1 Ketchup 1 1 2 Brand A 1 2 2 300g 1 3 2 Ketchup (Different language) 2 1 1 Brand B 2 2 1 500mL 2 3 1 Cherry 2 1 2 Brand B 2 2 2 500mL 2 3 2 Cherry (Different language)
What I want to do is below:
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 テーブルにあります。製品には、2 行の製品説明 (バイリンガル) を含めることができます。製品には、ブランド (「ブランド A」、「ブランド B」) や容量/重量 (「300g」、「500ml」) など、product_attribute PA テーブルにも属性値があります。製品は複数のカテゴリに属し、カテゴリには複数の製品が含まれる場合があります。各カテゴリには 2 つの説明があります (バイリンガル)。
さらに説明が必要な場合はお知らせください。