MW211 EXIT

devlog
SQL/呉越同舟?Ⅱ
2011年09月23日
以前、まったく違う列を結合したかのように取得する方法を取り上げた。
┌──────────────────────────────────────┐
│SELECT 表1.列11,                                                            │
│       表2.列21                                                             │
│  FROM 表1,                                                                 │
│       表2                                                                  │
│  WHERE 表1.列11 = '値'                                                     │
│    AND 表2.列21 = '値';                                                    │
└──────────────────────────────────────┘
上記のようにすれば、あたかも以下の結果を横に並べたようになるのである。
#但し、双方ともに一件ずつ該当し、結果が一件になるような場合が望ましい
┌──────────────────────────────────────┐
│SELECT 表1.列11                                                             │
│  FROM 表1                                                                  │
│  WHERE 表1.列11 = '値';                                                    │
└──────────────────────────────────────┘
┌──────────────────────────────────────┐
│SELECT 表2.列21                                                             │
│  FROM 表2                                                                  │
│  WHERE 表2.列21 = '値';                                                    │
└──────────────────────────────────────┘

これに集合関数が絡んでくるとひと工夫必要なことがわかったので追記する。
┌──────────────────────────────────────┐
│SELECT 表1.列11                                                             │
│       MAX(表2.列21)                                                        │
│    FROM 表1,                                                               │
│         表2                                                                │
│    WHERE 表1.列11 = '値'                                                   │
│      AND 表2.列22 = '値'                                                   │
│    GROUP BY 表1.列11;                                                      │
└──────────────────────────────────────┘
当然ながら、結果一件なのだが「GROUP BY」がないと建て前として
集合関数との整合性がとれないので、これは(必須な場合は)必須みたいだ。
分類:SQL