質問: unionとunion allの違いについて お世話になります。 一応違いについては把握しておりますが、念のため 確認させて下さい。 以下のクエリがあります。 クエリa 受注日 型番 数量の合計 2015/01/01 aaa 10 2015/01/01 bbb 5 クエリb 受注日 型番 数量の合計 2015/01/01 bbb 5 2015/01/01 ccc 10 2015/01/02 ccc 5 クエリa union クエリb の場合は、 受注日 型番 数量の合計 2015/01/01 aaa 10 2015/01/01 bbb 5 2015/01/01 ccc 10 2015/01/02 ccc 5 となると思ってます。 ※型番bの重複がマージされる クエリa union all クエリb の場合は、 受注日 型番 数量の合計 2015/01/01 aaa 10 2015/01/01 bbb 5 2015/01/01 bbb 3 2015/01/01 ccc 10 2015/01/02 ccc 5 となると思ってます。 ※重複があっても単純にくっつける。 あってますでしょうか? で、例えば、テーブルa及びbにそれぞれ「ライン」という項目があり、 テーブルaの方は、l01、l02となっており、テーブルbの方は ll01、ll02となっていたとしたら(要するにテーブルaのラインと テーブルbのラインが重複することが無い)、unionでも union allでも、どちらでも結果が同じになる・・・という ことであってますでしょうか? ご教示の程、宜しくお願い致します。
回答: 2つのテーブルに重複がなければ、結果は同じになりますが、union だと、重複がないかチェッするという処理が入りますから、その分、重くなりますね。 重複がないことが分かってる、あるいは、重複をはじく必要がないなら、union all の方がいいでしょう。