SQL-Join unter mehreren Bedingungen

Sql Join Unter Mehreren Bedingungen



Eine der am weitesten verbreiteten Funktionen relationaler Datenbanken sind Verknüpfungen. SQL-Joins beziehen sich auf den Prozess der Kombination der Daten aus zwei oder mehr Tabellen zu einem einzigen Ergebnissatz basierend auf Standardfunktionen oder -spalten.

Durch das Zusammenführen der Tabellen können wir die in mehreren Tabellen gespeicherten Daten in einer einzigen Abfrage abrufen, was es zu einem leistungsstarken Tool für die Datenanalyse und Berichterstellung macht.







In diesem Tutorial erfahren Sie, wie Sie SQL-Joins unter mehreren Bedingungen durchführen. Wir lernen, die logischen Operatoren „AND“ und „OR“ zu verwenden, um die Daten basierend auf mehreren Bedingungen zu verknüpfen.



SQL-Joins unter mehreren Bedingungen

Mit den Operatoren AND oder OR in SQL können wir mehrere Bedingungen angeben. Mit diesen Operatoren können wir eine Reihe boolescher Ausdrücke definieren, die dann ausgewertet und mit der resultierenden Menge verglichen werden.



Wir verwenden den AND-Operator, um sicherzustellen, dass alle angegebenen Bedingungen wahr sind. Wenn auch nur eine der Bedingungen nicht wahr ist, wird der gesamte Ausdruck als falsch wiedergegeben. Dies macht den AND-Operator zu einem außergewöhnlichen Werkzeug für extreme Datenfilterung.





Andererseits verwenden wir den OR-Operator, wenn mindestens eine der Bedingungen wahr sein muss. Dies macht es zu einer „lockereren“ Datenfilterungsmethode, da der resultierende Datensatz nur mindestens einen definierten Parameter erfüllen darf.

Auch bei SQL-Joins ändert sich die Funktionalität der AND- und OR-Operatoren nicht.



Beispiel für mehrere SQL-Joins

Um zu verstehen, wie man mit Joins unter mehreren Bedingungen arbeitet, arbeiten Sie am besten mit einem Beispiel.

Für diese Demonstration verwenden wir die Sakila-Datenbank, die entwickelt wurde, um die vollen Möglichkeiten von SQL zu erkunden.

Angenommen, wir möchten die Daten aus den Tabellen film und film_actor abrufen. Zunächst möchten wir alle Schauspieler finden, die in dem Film mitgewirkt haben, die entweder eine PG- oder PG-13-Einstufung haben und eine Länge zwischen 90 und 120 haben.

In einem solchen Szenario müssen wir einen Join mit mehreren Bedingungen durchführen, wie im Folgenden gezeigt:

Wählen Sie „Schauspieler.Vorname“, „Schauspieler.Nachname“, „Film.Titel“, „Film.Veröffentlichungsjahr“, „Film.Bewertung“ aus
VON Schauspieler
Treten Sie film_actor ON bei,actor.actor_id = film_actor.actor_id
JOIN film ON film_actor.film_id = film.film_id
WO film.länge ZWISCHEN 90 UND 120
UND film.rating IN ( 'PG' , 'PG-13' ) ;


Wie Sie der vorherigen Abfrage entnehmen können, weisen wir SQL an, einen Join zwischen den Tabellen „actor“ und „film_actor“ basierend auf der Spalte „actor_id“ durchzuführen. Außerdem führen wir mithilfe der Spalte film_id einen Join zwischen film_actor und den Filmtabellen durch. Wir stellen außerdem sicher, dass wir mithilfe der WHERE-Klausel zwei Bedingungen definieren, um die Ergebnistabelle basierend auf dem Erscheinungsjahr und der Filmlänge zu filtern.

Die resultierende Tabelle sieht wie folgt aus:


Wir können die mehreren Bedingungen auch basierend auf dem OR-Operator angeben, wie in der folgenden Beispielabfrage gezeigt:

SELECT film.title, film.rental_rate, Category.name
VOM Film
JOIN film_category ON film.film_id = film_category.film_id
JOIN-Kategorie ON film_category.category_id = Category.category_id
WO Kategorie.Name IN ( 'Aktion' , 'Komödie' )
UND film.rental_rate > 3,00 ;


Die resultierende Tabelle sieht wie folgt aus:

Abschluss

In diesem Tutorial wurde untersucht, wie Sie mit SQL-Joins basierend auf mehreren Bedingungen unter Verwendung der Operatoren AND und OR arbeiten. Dies ermöglicht eine detailliertere Datenfilterung.