「ユニオンクエリ」とは何ぞや?が分かっている方向けに、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文字を超える部分は切り落とされてしまう!←ハイ、ここ注意!(切れ落ちではなく、文字化けになったこともあったような…) |
![](https://access-excel-vba.net/wp-content/uploads/2022/10/fec70bf1e7a13dce0ef5d1a65a2354a0.jpg)
![](https://access-excel-vba.net/wp-content/uploads/2022/10/d51f7e2f2dd02de26b94c230ca9796a6.jpg)
全部入りユニオンクエリ~UNION ALL~
- SQLビューとデータシートビューです。水色(選択)部分のレコードが、各2件ずつ重複状態になっていて、トータルレコード数は12+10=22レコードになっています。
![](https://access-excel-vba.net/wp-content/uploads/2022/10/9f822c7a5ff458f54652052ea351ddec-1.jpg)
![](https://access-excel-vba.net/wp-content/uploads/2022/10/834a80a414a2100727b465063ac5efa2.jpg)
重複排除ユニオンクエリ~UNION~
- データシートビューの水色(選択)部分のレコードが重複排除されて1件ずつになっていて、トータルレコード数が18件(12+10-重複4)になっています。
![](https://access-excel-vba.net/wp-content/uploads/2022/10/eb6309888fd03ad807c5ed2606ccc790-1.jpg)
![](https://access-excel-vba.net/wp-content/uploads/2022/10/05c61fddd0218c6204d5015aa8c3b302.jpg)