そのため、動的な行から列への他の質問をいくつか読んでいます。ここで別の回答に別のクエリを適応させることにより、
mysql select dynamic row values as column names, another column as value、
単一のテーブルで機能させることができますが、結果に含めるために他の2つのテーブルからレコードをプルする必要もあります。これらのテーブルを考えると:
Cars
ID BRAND NAME etc1...
1 gmc sierra
2 ford ranger
3 dodge dakota
4 kia rio
Dice
ID DESCRIPTION
1 blue
2 green
3 red
etc2. etc2.
Stock
ID CAR_ID DICE_ID NUMBER
1 1 3 01V,3Y6
2 3 1 8Z4
3 2 2 03X
4 1 1 C7B
はい、これはあまり意味がありませんが、構造を示すだけです。私の結果は次のようになります。
CAR_ID BRAND NAME etc1. BLUE GREEN RED etc2.
1 gmc sierra ... C7B null 01V,3Y6 ...
2 ford ranger ... null 03X null ...
3 dodge dakota ... 8Z4 null null ...
4 kia rio ... null null null ...
静的であれば単純ですが、Cars and Dice の行数は動的になるため、ハードコーディングできません。Dice に行を列に出力させることはできますが、理解できないことが 2 つあります。
- メインクエリは、Cars テーブルのすべての列と Dice テーブルのすべての行をリストすることになっていますが、Dice クエリを Cars クエリに添付する方法がわかりません。
- Dice テーブルから相対的な説明を引き出して、列ヘッダーとして使用する必要があります。dice.id の使用は実用的でも役に立ちません。これを Dice テーブルの作業クエリに組み込む方法がわかりません。
望ましい結果を生み出す方法を知っている人はいますか?
編集 1: Dice の在庫があるかどうかに関係なく、結果にはすべての車がリストされている必要があることを忘れていました。
編集 2: NUMBER は製品番号を意味し、カウントしないことを明確にする必要がありました。これは、複数の製品番号を保持できる文字列フィールドです。レガシーデータです。