Union ve Union All Nedir ?

Union ve Union All

Bugün ki yazımızda Union ve Union All Nedir? kavramlarını ele alacağız. İki kavram aslında çok benzer bir amaç için kullanılmaktadır. Çok küçük bir farkı vardır. Union kavramı farklı tablolardan yaptığımız select işlemini bize tek bir tablo olarak dönmesini sağlamaktadır. Yani 2 tane select işlemimiz var ve ikisini çalıştırdığımızda normalde ayrı tablolar olarak sonuç üretilir ama Union kullanırsak bize tek bir sonuç tablosu üretilmektedir.

Union ve Union All arasındaki fark Union benzer satırları 1 defa yazmaktadır, Union All ise benzerlik kontrolü yapmamaktadır tüm sonuçları listelemektedir. Kullanım şekli şu şekildedir;

SELECT [ALANLAR] FROM [TABLO]
UNION || UNION ALL
SELECT [ALANLAR] FROM [TABLO1]

Örneklerimize başlayabiliriz.

Union All

Örnekte kullandığımız tablolar bir önceki yazımızda kullandığımız tablolardır. Çalışan ve Yönetici tablolarımız var. Bizden bu 2 tablodaki ad ve soyad alanlarının hepsini tek bir tablo olarak istenmektedir. Burada Union All kullanmamız gerekir çünkü tüm kayıtlar istenmektedir.

SELECT Name,Surname FROM Administrator
UNION ALL
SELECT Name,Surname FROM Employee

Sorgumuzu çalıştırdığımızda tek bir sonuç döndü ve iki tablodaki tüm kayıtlar listelendi. Union All kavramı bu kadar.

Union

Çalışan ve Yönetici tablolarımız var. Bizden bu 2 tablodaki ad ve soyad alanları tek bir tablo olarak istenmektedir. Ama benzer kayıtlar istenmemektedir. Burada Union kullanmamız gereklidir çünkü benzer kayıtlar istenmemektedir.

SELECT Name,Surname FROM Administrator
UNION 
SELECT Name,Surname FROM Employee

Sorgu sonucunda Union All kullandığımız sorgudan daha az sonuç üretildiğini gördük. Benzer kayıtlar 1 defa tabloda olduğundan sayı azalmıştır.

Yapılan Hatalar

Genel olarak Union ve Union All kullanımında yapılan hata vardır. Sütun sayısı aynı değil ise hata vermektedir. Çünkü iki tabloyu birleştiriyor ve sütun sayısı uyuşmuyor.

SELECT Name,Surname,Age FROM Administrator
UNION 
SELECT Name,Surname FROM Employee

SQL Server böyle bir sorgu çalıştırdığımızda bize aşağıdaki gibi bir hata vericektir.

All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.

SQL Server sütun sayılarının eşit olması gerektiğini söylemektedir.

Yazımızın sonuna geldik.

Bir önceki yazımız: SQL Server’da İç İçe Sorgular

Microsoft Union ve Union All Açıklaması

E-bültene Abone Ol Merak etmeyin. Spam yapmayacağız.

Yazar

Kocaeli Üniversitesi Bilişim Sistemleri Mühendisliğini bitirip sektörde veri tabanı mühendisi olarak göreve başladım.

İlgili Yazılar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Hızlı yorum için giriş yapın.

Başka Yazı Yok

Kayıt Ol

Zaten üye misiniz? Giriş Yap

Giriş Yap

Henüz üyeliğiniz yok mu? Kayıt Ol