「ユニオンクエリ」とは何ぞや?が分かっている方向けに、2種類の違いと検証結果をまとめました。
タイプ | SQL文 | テーブル追加時 繰返しパート |
---|---|---|
全部入り | SELECT * FROM テーブル1 UNION ALL SELECT * FROM テーブル2; | UNION ALL SELECT * FROM テーブルX |
重複排除 | SELECT * FROM テーブル1 UNION SELECT * FROM テーブル2; | UNION SELECT * FROM テーブルX |
- クエリをSQLビューに切り替えて上の表の「SQL文」をコピペし、「テーブル1」「テーブル2」の所をお手元のAccessファイルに合わせて書き換えれば即、使用できます。
- 3テーブル以上をがっちゃんこしたい場合は、「SQL文」文末のセミコロン(;)の前に半角スペース+「テーブル追加時 繰り返しパート」のコピーを挿入して、テーブル名を書き換えて行けば、どんどん増やせます。
ALLの有無で違ってくること
タイプ | 特徴 |
---|---|
UNION ALL 全部入り | がっちゃんこした結果、重複するレコードがあっても全てそのまま表示される (がっちゃんこしたテーブルのレコード数の合計=ユニオンクエリのレコード数) |
UNION 重複排除 | がっちゃんこした結果、重複するレコードがあった場合は、勝手に重複排除してくれる つまりグループ化クエリと同じ働きがある→ということは長い文字列型フィールドに含まれる255文字を超える部分は切り落とされてしまう!←ハイ、ここ注意!(切れ落ちではなく、文字化けになったこともあったような…) |
全部入りユニオンクエリ~UNION ALL~
- SQLビューとデータシートビューです。水色(選択)部分のレコードが、各2件ずつ重複状態になっていて、トータルレコード数は12+10=22レコードになっています。
重複排除ユニオンクエリ~UNION~
- データシートビューの水色(選択)部分のレコードが重複排除されて1件ずつになっていて、トータルレコード数が18件(12+10-重複4)になっています。