UNION ve UNION ALL komutları ile birden fazla sorguyu birleştirerek tek sonuç elde ederiz.
UNION komutu, sonuçların duplicate edilmesini engeller. Yani union komutu, DISTINCT komutu ile select sorgusu yazmak gibi düşünülebilir.
UNION ALL'da ise kayıtların duplicate olup olmadığına bakılmaz.
Komutlar hakkında kısa bilgi verdikten sonra örneğe geçiyorum.
"uye" adında bir tablom var ve tabloda aşağıdaki gibi 7 kayıt bulunuyor.
Şimdi Ulke alanı ABD olan kayıtları çekiyorum.
SELECT * FROM uye WHERE Ulke = 'ABD'
No alanı 30'dan büyük olan kayıtları çekiyorum.
SELECT * FROM uye WHERE No > 30
Şimdi bu kayıtları UNION ALL kullanarak birleştiriyorum.
SELECT * FROM uye WHERE Ulke = 'ABD' UNION ALL SELECT * FROM uye WHERE No > 30
Görüldüğü gibi Bobby Dixon'ın ülkesi ABD ve numarası 30'dan büyük olduğu için sorgu sonucunda iki kere gözüktü.
Şimdi UNION ALL yerine UNION komutunu kullanıyorum.
SELECT * FROM uye WHERE Ulke = 'ABD' UNION SELECT * FROM uye WHERE No > 30
Bu sefer Bobby Dixon için de sadece bir sonuç döndü.