例として、フォントファミリー名が収納されているテーブルを考えます。
mysql
1FONT_FAMILY 2---------------------------------------------------- 3ID | FONT_FAMILY_NAME 4---------------------------------------------------- 51 | 'MS 明朝', 'serif' 62 | Monaco,'Courier New',monospace 73 | 'MS ゴシック','sans-serif' 84 | '游明朝', 'Arial Black', 'Stencil Std' 95 | 'Batang', 'Arial Black' 10----------------------------------------------------
上記の定義カラム
別のテーブルには、
mysql
1FONT_STYLE 2---------------------------------------- 3ID | F_ID_01 | F_ID_02 | F_ID_03 4---------------------------------------- 51 | 3 | 3 | 1 62 | 1 | 4 | 1 73 | 1 | 5 | 1 84 | 2 | 1 | 1 9----------------------------------------
というふうに値を入れています。この2つのテーブルを結合して、下のようなテーブルを作りたいと思います。
mysql
1NEW_VIEW 2------------------------------------------------------------------------------------------------------------------------ 3ID | F_ID_01_NAME | F_ID_02_NAME | F_ID_03_NAME 4------------------------------------------------------------------------------------------------------------------------ 51 | 'MS ゴシック','sans-serif' | 'MS ゴシック','sans-serif' | 'MS 明朝', 'serif' 62 | 'MS 明朝', 'serif' | '游明朝', 'Arial Black', 'Stencil Std' | 'MS 明朝', 'serif' 73 | 'MS 明朝', 'serif' | 'Batang', 'Arial Black' | 'MS 明朝', 'serif' 84 | Monaco,'Courier New',monospace | 'MS 明朝', 'serif' | 'MS 明朝', 'serif' 9------------------------------------------------------------------------------------------------------------------------
ポイントとしては、FONT_STYLEの中にあるkeyはFONT_FAMILYのIDとつながっているということではありますが、1レコードの中に複数のkeyがあるということです。
結合する際に、下記の条件を考慮していただき、よいSQLがあれば教えていただければ幸いです。
・できるだけunion (all)を使わないで結合できないか。
・(または)サーバに負荷をかけないで結合できないか(Duration/Fetchが短ければありがたい)。
もし難しそうでしたら教えていただけますと幸いです。その時は、union allを使うことにします。
回答2件
あなたの回答
tips
プレビュー