SQL Join op meerdere voorwaarden

Sql Join Op Meerdere Voorwaarden



Een van de meest voorkomende kenmerken van relationele databases zijn joins. SQL-joins verwijzen naar het proces van het combineren van de gegevens uit twee of meer tabellen tot één resultatenset op basis van standaardfuncties of kolommen.

Door de tabellen samen te voegen, kunnen we de gegevens ophalen die in meerdere tabellen zijn opgeslagen in één enkele query, waardoor het een krachtig hulpmiddel is voor gegevensanalyse en rapportage.







In deze zelfstudie zullen we ontdekken hoe de SQL-joins op meerdere voorwaarden kunnen worden uitgevoerd. We zullen leren om de logische operatoren 'EN' en 'OF' te gebruiken om de gegevens samen te voegen op basis van meerdere voorwaarden.



SQL sluit zich aan op meerdere voorwaarden

We kunnen meerdere voorwaarden specificeren met behulp van de AND- of OR-operatoren in SQL. Met deze operatoren kunnen we een set Booleaanse uitdrukkingen definiëren die vervolgens worden geëvalueerd en vergeleken met de resulterende set.



We gebruiken de AND-operator om ervoor te zorgen dat alle opgegeven voorwaarden waar zijn. Als ook maar één van de voorwaarden niet waar is, wordt de hele uitdrukking onwaar weergegeven. Dit maakt de AND-operator tot een uitzonderlijk hulpmiddel voor extreme gegevensfiltering.





Aan de andere kant gebruiken we de OR-operator wanneer we ten minste één van de voorwaarden nodig hebben om waar te zijn. Dit maakt het een meer 'losse' methode voor het filteren van gegevens, aangezien het resulterende record slechts aan ten minste één gedefinieerde parameter hoeft te voldoen.

De functionaliteit van de AND- en OR-operators verandert niet, zelfs niet in het geval van SQL-joins.



Voorbeeld van meerdere SQL-joins

Om te begrijpen hoe u met joins op meerdere voorwaarden kunt werken, kunt u het beste met een voorbeeld werken.

Voor deze demonstratie gebruiken we de Sakila-database die is ontwikkeld om alle mogelijkheden van SQL te verkennen.

Stel dat we de gegevens willen ophalen uit de film en de film_actor-tabellen. Eerst willen we alle acteurs vinden die in de film hebben gespeeld die ofwel de classificatie PG of PG-13 hebben en een lengte tussen 90 en 120 hebben.

In een dergelijk scenario moeten we een join uitvoeren met meerdere voorwaarden, zoals hieronder wordt weergegeven:

SELECT actor.first_name, actor.last_name, film.title, film.release_year, film.rating
VAN acteur
DOE MEE film_actor AAN actor.actor_id = film_actor.actor_id
DOE MEE film AAN film_actor.film_id = film.film_id
WAAR film.lengte TUSSEN 90 EN 120
EN film.rating IN ( 'PG' , 'PG-13' ) ;


Zoals je kunt zien in de vorige query, vertellen we SQL om een ​​join uit te voeren tussen de actor- en de film_actor-tabellen op basis van de actor_id-kolom. We voeren ook een join uit tussen de film_actor en de filmtafels met behulp van de kolom film_id. We zorgen er ook voor dat we twee voorwaarden definiëren met behulp van de WHERE-clausule om de resultatentabel te filteren op basis van het releasejaar en de filmlengte.

De resulterende tabel is als volgt:


We kunnen ook de meervoudige voorwaarden specificeren op basis van de OR-operator, zoals weergegeven in de volgende voorbeeldquery:

SELECT film.title, film.rental_rate, category.name
VAN film
WORD LID VAN film_category ON film.film_id = film_category.film_id
DOE MEE categorie ON film_category.category_id = category.category_id
WHERE categorie.naam IN ( 'Actie' , 'Komedie' )
EN filmhuurtarief > 3.00 ;


De resulterende tabel is als volgt:

Conclusie

In deze zelfstudie werd onderzocht hoe u met SQL-joins werkt op basis van meerdere voorwaarden met behulp van de operatoren AND en OR. Dit zorgt voor meer gedetailleerde gegevensfiltering.