SQL Join na wielu warunkach

Sql Join Na Wielu Warunkach



Jedną z najbardziej rozpowszechnionych funkcji relacyjnych baz danych jest łączenie. Złączenia SQL odnoszą się do procesu łączenia danych z dwóch lub więcej tabel w jeden zestaw wyników na podstawie standardowych funkcji lub kolumn.

Łączenie tabel umożliwia nam pobieranie danych przechowywanych w wielu tabelach w jednym zapytaniu, co czyni je potężnym narzędziem do analizy danych i raportowania.







W tym samouczku dowiemy się, jak wykonywać sprzężenia SQL w wielu warunkach. Nauczymy się używać operatorów logicznych „AND” i „OR” do łączenia danych na podstawie wielu warunków.



Łączenia SQL na wielu warunkach

Możemy określić wiele warunków za pomocą operatorów AND lub OR w SQL. Operatory te pozwalają nam zdefiniować zestaw wyrażeń boolowskich, które są następnie oceniane i porównywane z wynikowym zestawem.



Używamy operatora AND, aby upewnić się, że wszystkie określone warunki są prawdziwe. Jeśli choć jeden z warunków nie jest prawdziwy, całe wyrażenie jest fałszywe. To sprawia, że ​​operator AND jest wyjątkowym narzędziem do ekstremalnego filtrowania danych.





Z drugiej strony używamy operatora OR, gdy potrzebujemy, aby przynajmniej jeden z warunków był prawdziwy. To sprawia, że ​​jest to bardziej „luźna” metoda filtrowania danych, ponieważ wynikowy rekord musi spełniać tylko co najmniej jeden zdefiniowany parametr.

Funkcjonalność operatorów AND i OR nie zmienia się nawet w przypadku złączeń SQL.



Przykład wielu sprzężeń SQL

Aby zrozumieć, jak pracować ze złączeniami w przypadku wielu warunków, najlepiej jest pracować na przykładzie.

Do tej demonstracji używamy bazy danych Sakila, która została opracowana w celu zbadania pełnych możliwości SQL.

Załóżmy, że chcemy pobrać dane z tabeli film i film_actor. Najpierw chcemy znaleźć wszystkich aktorów, którzy wystąpili w filmie, którzy mają ocenę PG lub PG-13 i mają długość między 90 a 120.

W takim scenariuszu musimy wykonać łączenie z wieloma warunkami, jak pokazano poniżej:

WYBIERZ imię.aktora, nazwisko.aktora, tytuł.filmu, rok.wydania_filmu, ocena.filmu
OD aktora
DOŁĄCZ aktora filmowego ON actor.actor_id = film_actor.actor_id
DOŁĄCZ film ON film_actor.film_id = film.film_id
GDZIE długość filmu MIĘDZY 90 I 120
I film.ocena W ( „PG” , „PG-13” ) ;


Jak widać z poprzedniego zapytania, nakazujemy SQL wykonać sprzężenie między tabelami aktor i film_aktor na podstawie kolumny id_aktora. Wykonujemy również łączenie między tabelami film_actor i film za pomocą kolumny film_id. Zapewniamy również zdefiniowanie dwóch warunków za pomocą klauzuli WHERE do filtrowania tabeli wyników na podstawie roku wydania i długości filmu.

Wynikowa tabela jest następująca:


Możemy również określić wiele warunków na podstawie operatora OR, jak pokazano w poniższym przykładowym zapytaniu:

WYBIERZ tytuł.filmu, stawka.wypożyczenia_filmu, nazwa.kategorii
Z filmu
DOŁĄCZ do kategorii_filmów ON film.film_id = kategoria_filmów.film_id
DOŁĄCZ do kategorii ON film_category.category_id = category.category_id
GDZIE nazwa.kategorii IN ( 'Działanie' , 'Komedia' )
ORAZ stawka_wynajmu filmu > 3.00 ;


Wynikowa tabela jest następująca:

Wniosek

W tym samouczku omówiono sposób pracy ze sprzężeniami SQL na podstawie wielu warunków przy użyciu operatorów AND i OR. Zapewnia to bardziej szczegółowe filtrowanie danych.