SQL UNION Kullanımı
UNION ile iki adet tablomuzdaki seçeceğimiz alanları birleştirerek tek bir
tablo alanıymış gibi kullanabiliriz. Union ile iki tablodaki alanlar
birleştirilirken tekrarlayan kayıtlar bir defa alınır. Eğer tekrarlayan
kayıtların alınması isteniyorsa UNION ALL kullanılmalıdır.
UNION Kullanım Biçimi
SELECT alan_ad(lari)
FROM tablo1
UNION
SELECT alan_ad(lari) FROM
tablo2 |
UNION ALL Kullanım Biçimi
SELECT alan_ad(lari)
FROM tablo1
UNION ALL
SELECT alan_ad(lari) FROM
tablo2 |
Görüleceği üzere iki tane SELECT ifadesi kullanılmaktadır. Yani iki ayrı sorgu
yapısını UNION ile birleştirmiş oluyoruz. Burada dikkat edilecek olan nokta
Select ifadesinden sonra yazılacak alan sayısı her iki sorgu ifadesinde
de aynı olmalıdır. Alan adları farklı olabilir. Yani birinci select ifadesinde
Şehir alanı kullanılırken diğer select ifadesinde Adres alanı kullanılabilir.
Sonuçta anlamsız bir veri çıkabilir ancak yapı bu şekilde çalışmaktadır.
Alanları birleştirirken yazım sırasına göre birleştirme yapmaktadır. Yani
birinci Select ifadesinden sonra Adi_soyadi, Sehir yazıldıysa, çekilen verinin
anlamlı olması için ikinci select ifadesinden sonra da Adi_soyadi, Sehir
şeklinde yazılması gerekmektedir. Eğer ikinci bölüme Sehir, Adi_soyadi yazılırsa
birinci tablodan adi_soyadi alanındaki veriler ile ikinci tablodan Sehir
alanındaki veriler birleştirilir. Ancak bazı SQL editör programları böylesi bir
durumun önün geçmek için kendi içlerinde kontrol mekanizması kurarak kullanıcıyı
uyarabilmektedirler.
Örnek Tablo Uygulaması:
Örnek olarak aşağıdaki gibi Personel isimli tablomuz olsun.
id |
Adi_soyadi |
Sehir |
1 |
Salih
ESKİOĞLU |
İstanbul |
2 |
Ayhan
ÇETİNKAYA |
Kocaeli |
3 |
Serkan
ÖZGÜREL |
Erzincan |
4 |
İlhan
ÖZLÜ |
İstanbul |
İkinci tablomuz olan Musteriler ise aşağıdaki gibi olsun.
id |
Adi_soyadi |
Sehir |
1 |
Veysi Yamlı |
Van |
2 |
Sırrı
Derman |
Mersin |
Örnek1:
SELECT Sehir
FROM Personel
UNION
SELECT Sehir FROM Musteriler
Bu
kod ile iki tabloda Sehir alanlarındaki veriler tekrar edenler bir defa alınmak
suretiyle birleştirilmiş olunur. Dikkat edileceği üzere PErsonel tablosunda iki
tane İstanbul bulunmaktadır.
Çıktısı:
Sehir |
İstanbul |
Kocaeli |
Erzincan |
Van |
Mersin |
Örnek2:
SELECT Sehir
FROM Personel
UNION ALL
SELECT Sehir FROM Musteriler
Burada UNION ALL kulanılmıştır. Yani her iki tabloda Sehir alanında bulunan
kayıtlar olduğu gibi alınmıştır. Personel tablosunda iki tane İstanbul kaydı
vardır. Bunlar olduğu gibi alınacaktır.
Çıktısı:
Sehir |
İstanbul |
Kocaeli |
Erzincan |
İstanbul |
Van |
Mersin |
Örnek3:
SELECT Adi_soyadi, Sehir
FROM Personel
UNION ALL
SELECT Adi_soyadi,Sehir FROM Musteriler
İki tablo olduğu gibi birleştirilmiştir.
Çıktısı:
Adi_soyadi |
Sehir |
Salih
ESKİOĞLU |
İstanbul |
Ayhan
ÇETİNKAYA |
Kocaeli |
Serkan
ÖZGÜREL |
Erzincan |
İlhan
ÖZLÜ |
İstanbul |
Veysi
Yamlı |
Van |
Sırrı
Derman |
Mersin |
.
|