10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SQLの実行結果を統合したいなら、UNION、UNIONALLが便利らしいよ

Last updated at Posted at 2023-12-04

はじめに

SQLのUNION使ってますか?
複数の実行結果を統合したいときに、それぞれエクセルにエクスポートして、列結合して...なんてやり方で無理やり統合したりしてませんよね?
今回はそんな愚かなやり方をしていて先輩にUNIONを教えてもらった自分が、反省がてら簡単にUNIONUINIONALLについてまとめてみました。

UNIONって何?

2つのSQLの実行結果を統合する構文のことです。

SELECT 列名1, 列名2 FROM テーブル1
UNION
SELECT 列名1, 列名2 FROM テーブル2;

このように書くことができます。
具体的に、実行結果がそれぞれ以下のようになるSQLがあったとします。

id 好きな食べ物
1 ラーメン
2 パスタ
3 うどん
id 好きな食べ物
10 カレー
20 ハヤシライス
30 ガパオライス

これをUNIONで結合すると

id 好きな食べ物
1 ラーメン
2 パスタ
3 うどん
10 カレー
20 ハヤシライス
30 ガパオライス

となります。便利ですね。

UNIONALLとはどう違うの?

重複が削除されるかどうかという違いがあります。
UNIONを使用した場合重複結果が削除されるのに対し、UNIONALLでは重複結果は削除されません。
例えば、以下のような実行結果をUNIONで統合した場合

id 好きな食べ物
1 ラーメン
2 パスタ
id 好きな食べ物
1 ラーメン
20 ハヤシライス

このように表示されます。

id 好きな食べ物
1 ラーメン
2 パスタ
20 ハヤシライス

しかし、UNIONALLで統合した場合

id 好きな食べ物
1 ラーメン
2 パスタ
1 ラーメン
20 ハヤシライス

と表示されます。
重複削除を必要としない場合は、UNIONALLの方が高速なのでそちらを使うことをお勧めします。

終わりに

SQLには便利な構文が意外と沢山ありますね。そんな便利機能を教えてくれる先輩の存在はありがたい限りです。感謝の心を忘れてはいけません🙏
先輩曰く、UNION後のORDER BYについて調べてみても面白いとのことなので今度まとめてみます!(予定)

10
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?