İki SQL Tablosundan Sütunları Seçme ve Birleştirme
Veritabanlarıyla çalışırken, genellikle birden çok tablodan veri almanız gereken durumlarla karşılaşmak yaygındır. Bu senaryolardan biri, ortak bir sütuna sahip iki tablo ile karşılaştığınızda ortaya çıkar. Bu blog yazısında, Table1
ve Table2
isimli iki farklı tablodan ColumnA
adlı belirli bir sütunun nasıl seçileceğini ve bunu tek bir sonuç kümesi olarak nasıl geri döndüreceğimizi inceleyeceğiz.
Sorun
Veritabanınızda iki tablo olduğunu varsayalım:
-
Table1, değerleri aşağıdaki gibi olan
ColumnA
adlı bir sütun içerir:- a
- b
- c
-
Table2 de, değerleri aşağıdaki gibi olan
ColumnA
adlı bir sütun içerir:- d
- e
- f
Amacınız, her iki tablodan da ColumnA
‘nın tüm örneklerini tek bir sütunda sonuç kümesine çıkartmaktır. Bu, çıktının aşağıdaki gibi görünmesini istiyorsunuz:
a
b
c
d
e
f
Çözüm
Bunu başarmak için UNION
operatörünü kullanan bir SQL sorgusu yazabiliriz. UNION
operatörü, iki veya daha fazla SELECT
ifadesinin sonuçlarını tek bir sonuç kümesine birleştirmemizi sağlar.
SQL Sorgu Örneği
Bu görevi başaran SQL sorgusu aşağıdaki gibidir:
SELECT ColumnA FROM Table1
UNION
SELECT ColumnA FROM Table2
ORDER BY 1;
Sorgunun Analizi
-
Sütunları Seçme:
SELECT ColumnA FROM Table1
ile başlayarak,Table1
‘dekiColumnA
değerlerinin tümünü alıyoruz.- Sonraki kısım,
SELECT ColumnA FROM Table2
,Table2
için aynı işlemi yapmaktadır.
-
Sonuçları Birleştirme:
UNION
operatörü, her ikiSELECT
ifadesinin sonuç kümesini birleştirir.- Varsayılan olarak,
UNION
tekrar eden değerleri kaldırır, bu yüzden eğerColumnA
‘nın değerleri arasında herhangi bir kesişme varsa, bunlar yalnızca bir kez son çıktıda görünecektir.
-
Sonuçları Sıralama:
ORDER BY 1
ifadesi, son çıktıyı ilk sütuna göre sıralar; bu durumda bu sütunColumnA
dır.
UNION ALL Ne Zaman Kullanılır
Eğer Table1
ve Table2
‘den gelen ColumnA
değerlerinin asla örtüşmeyeceğinden eminseniz, UNION
yerine UNION ALL
kullanmayı düşünebilirsiniz. Bu seçenek, tekrarları kontrol etme yükünü ortadan kaldırır ve performans artırabilir:
SELECT ColumnA FROM Table1
UNION ALL
SELECT ColumnA FROM Table2
ORDER BY 1;
Özet
Özetle, SQL’de birden çok tablodan veri birleştirmek UNION
operatörünü kullanarak etkili bir şekilde yönetilebilir. Bu uygulama sadece veri alımını basitleştirmekle kalmaz, aynı zamanda veritabanı sorgularınızı daha sağlam ve esnek hale getirir.
Artık farklı tablolardan sütunları kolayca çıkarabilir ve birleştirebilir, verilerinizi etkili bir şekilde yönetme ve analiz etme becerinizi artırabilirsiniz!