İ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

  1. Sütunları Seçme:

    • SELECT ColumnA FROM Table1 ile başlayarak, Table1‘deki ColumnA değerlerinin tümünü alıyoruz.
    • Sonraki kısım, SELECT ColumnA FROM Table2, Table2 için aynı işlemi yapmaktadır.
  2. Sonuçları Birleştirme:

    • UNION operatörü, her iki SELECT ifadesinin sonuç kümesini birleştirir.
    • Varsayılan olarak, UNION tekrar eden değerleri kaldırır, bu yüzden eğer ColumnA‘nın değerleri arasında herhangi bir kesişme varsa, bunlar yalnızca bir kez son çıktıda görünecektir.
  3. Sonuçları Sıralama:

    • ORDER BY 1 ifadesi, son çıktıyı ilk sütuna göre sıralar; bu durumda bu sütun ColumnAdı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!