alt sorgu örnekleri ms sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
alt sorgu örnekleri ms sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
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
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.
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.
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 |
SQL UNION Kullanımı
Alt sorgu sadece bir tek değer
döndürüyorsa, buna tekil değer döndüren alt sorgu denir.
Alt sorgular bazen kayıtları
filtrelemek için kullanılır.
Grupsal fonksiyonlar kullanılarak
elde edilebileceği gibi, WHERE kısmında verilecek bir filtre neticesinde de
tekil bir sonuç döndürmesi sağlanabilir.
Tekil Sonuç Döndüren Alt Sorgular
Kaydol:
Kayıtlar
(
Atom
)