SELECT a.id, a.name, b_Width.value AS width, b_Height.value AS height, b_color.value AS color
FROM Table_A AS a
JOIN Table_B AS b_Width
ON b_Width.a_id = a.id AND b_Width.type = 'width'
JOIN Table_B AS b_Height
ON b_Height.a_id = a.id AND b_Height.type = 'height'
JOIN Table_B AS b_Color
ON b_Color.a_id = a.id AND b_Color.type = 'color'
しかし、真剣にあなたのスキーマを再設計を検討:その結果を取得する方法
。値は色と線形寸法を保持していますが、それが異なって設計された方が良いでしょう。
テーブルをそのまま保持しますが、幅/高さ/色の列を持つ詳細というテーブルがあります。または、幅/高さの列を持つSizeというテーブルと、色名またはRGB値を持つColorというテーブルがあります。追加の各テーブルには、テーブルのPKとして使用される場合と使用されない場合があるFK to TableAがあります。選択ID、名前などのサブクエリ
と