Birden Çok Koşulda SQL Birleştirme

Birden Cok Kosulda Sql Birlestirme



İlişkisel veritabanlarının en yaygın özelliklerinden biri birleştirmelerdir. SQL birleştirmeleri, standart özelliklere veya sütunlara dayalı olarak iki veya daha fazla tablodaki verileri tek bir sonuç kümesinde birleştirme sürecini ifade eder.

Tabloları birleştirmek, birden çok tabloda depolanan verileri tek bir sorguda almamızı sağlar, bu da onu veri analizi ve raporlama için güçlü bir araç haline getirir.







Bu öğreticide, SQL birleştirmelerinin birden çok koşulda nasıl gerçekleştirileceğini keşfedeceğiz. Verileri birden fazla koşula göre birleştirmek için “VE” ve “VEYA” mantıksal operatörlerini kullanmayı öğreneceğiz.



Birden Çok Koşulda SQL Birleştirmeleri

SQL'de AND veya OR operatörlerini kullanarak birden fazla koşul belirtebiliriz. Bu işleçler, daha sonra değerlendirilen ve sonuç kümesiyle karşılaştırılan bir dizi Boole ifadesi tanımlamamıza izin verir.



Belirtilen tüm koşulların doğru olduğundan emin olmak için AND operatörünü kullanırız. Koşullardan biri bile doğru değilse, tüm ifade yanlış olur. Bu, AND operatörünü aşırı veri filtreleme için istisnai bir araç haline getirir.





Öte yandan, koşullardan en az birinin doğru olması gerektiğinde OR operatörünü kullanırız. Elde edilen kayıt yalnızca tanımlanmış en az bir parametreyi karşılaması gerektiğinden, bu onu daha 'gevşek' bir veri filtreleme yöntemi haline getirir.

AND ve OR işleçlerinin işlevselliği, SQL birleştirmelerinde bile değişmez.



SQL Çoklu Birleştirme Örneği

Birden çok koşulda birleştirmelerle nasıl çalışılacağını anlamak için bir örnekle çalışmak en iyisidir.

Bu gösteri için, SQL'in tüm yeteneklerini keşfetmek için geliştirilen Sakila veritabanını kullanıyoruz.

Filmden ve film_actor tablolarından veri almak istediğimizi varsayalım. Öncelikle, filmde rol alan ve PG veya PG-13 olarak derecelendirilen ve uzunluğu 90 ile 120 arasında olan tüm oyuncuları bulmak istiyoruz.

Böyle bir senaryoda, aşağıda gösterildiği gibi birden çok koşulla bir birleştirme gerçekleştirmemiz gerekir:

aktör.ad_adı, aktör.soyadı, film.title, film.release_year, film.rating SEÇİN
İLE aktör
film_actor'A KATIL Actor.actor_id = film_actor.actor_id AÇIK
film_actor.film_id = film.film_id ON filmine KATILIN
NEREDE film.uzunluk ARASINDA 90 VE 120
VE film.reyting İÇİNDE ( 'PG' , 'PG-13' ) ;


Önceki sorgudan da görebileceğiniz gibi, SQL'e aktör_id sütununa göre aktör ve film_actor tabloları arasında bir birleştirme gerçekleştirmesini söylüyoruz. Ayrıca film_actor ve film tabloları arasında film_id sütununu kullanarak bir birleştirme gerçekleştiriyoruz. Ayrıca sonuç tablosunu çıkış yılı ve film uzunluğuna göre filtrelemek için WHERE yan tümcesini kullanarak iki koşul tanımlamayı sağlıyoruz.

Ortaya çıkan tablo aşağıdaki gibidir:


Aşağıdaki örnek sorguda gösterildiği gibi, VEYA işlecini temel alan çoklu koşulları da belirtebiliriz:

film.title, film.rental_rate, kategori.name SEÇİN
FİLMDEN
film_category ON film.film_id = film_category.film_id KATILIN
kategoriye KATILIN film_category.category_id = Category.category_id
NEREDE kategori.adı İÇERİSİNDE ( 'Aksiyon' , 'Komedi' )
VE film.rental_rate > 3.00 ;


Ortaya çıkan tablo aşağıdaki gibidir:

Çözüm

Bu öğretici, AND ve OR işleçlerini kullanarak birden çok koşula dayalı SQL birleştirmeleriyle nasıl çalışılacağını araştırdı. Bu, daha ayrıntılı veri filtreleme sağlar.