SQL Join på flere betingelser

Sql Join Pa Flere Betingelser



Et af de mest udbredte funktioner i relationelle databaser er joinforbindelser. SQL-join refererer til processen med at kombinere data fra to eller flere tabeller til et enkelt resultatsæt baseret på standardfunktioner eller -kolonner.

Sammenføjning af tabellerne giver os mulighed for at hente de data, der er lagret på tværs af flere tabeller i en enkelt forespørgsel, hvilket gør det til et effektivt værktøj til dataanalyse og rapportering.







I denne øvelse vil vi opdage, hvordan du udfører SQL-sammenføjninger på flere betingelser. Vi vil lære at bruge de logiske operatorer 'AND' og 'OR' til at forbinde data baseret på flere betingelser.



SQL joins på flere betingelser

Vi kan angive flere betingelser ved hjælp af AND- eller OR-operatorerne i SQL. Disse operatorer giver os mulighed for at definere et sæt boolske udtryk, som derefter evalueres og sammenlignes med det resulterende sæt.



Vi bruger AND-operatoren til at sikre, at alle de angivne betingelser er sande. Hvis selv en af ​​betingelserne ikke er sand, bliver hele udtrykket gengivet falsk. Dette gør AND-operatøren til et enestående værktøj til ekstrem datafiltrering.





På den anden side bruger vi OR-operatoren, når vi skal have mindst én af betingelserne for at være sand. Dette gør det til en mere 'løs' datafiltreringsmetode, da den resulterende post kun skal opfylde mindst én defineret parameter.

Funktionaliteten af ​​AND- og OR-operatorerne ændres ikke, selv i tilfælde af SQL-join.



Eksempel på SQL Multiple Joins

For at forstå, hvordan man arbejder med sammenføjninger på flere betingelser, er det bedst at arbejde med et eksempel.

Til denne demonstration bruger vi Sakila-databasen, som blev udviklet til at udforske de fulde funktioner i SQL.

Antag, at vi ønsker at hente data fra filmen og film_actor-tabellerne. Først vil vi finde alle de skuespillere, der medvirkede i filmen, som enten er bedømt til PG eller PG-13 og har en længde på mellem 90 og 120.

I et sådant scenarie skal vi udføre en joinforbindelse med flere betingelser som vist i følgende:

SELECT actor.first_name, actor.last_name, film.title, film.release_year, film.rating
FRA skuespiller
JOIN film_actor ON actor.actor_id = film_actor.actor_id
JOIN film PÅ film_actor.film_id = film.film_id
HVOR film.længde MELLEM 90 OG 120
OG film.rating IN ( 'PG' , 'PG-13' ) ;


Som du kan se fra den forrige forespørgsel, beder vi SQL om at udføre en joinforbindelse mellem skuespilleren og film_actor-tabellerne baseret på actor_id-kolonnen. Vi udfører også en sammenføjning mellem film_actor og filmtabellerne ved hjælp af kolonnen film_id. Vi sørger også for at definere to betingelser ved hjælp af WHERE-klausulen til at filtrere resultattabellen baseret på udgivelsesåret og filmens længde.

Den resulterende tabel er som følger:


Vi kan også angive de flere betingelser baseret på OR-operatoren som vist i følgende eksempelforespørgsel:

VÆLG film.titel, film.udlejningspris, kategori.navn
FRA film
JOIN film_category PÅ film.film_id = film_category.film_id
JOIN kategori PÅ film_category.category_id = category.category_id
HVOR kategori.navn IN ( 'Handling' , 'Komedie' )
OG film.udlejningspris > 3.00 ;


Den resulterende tabel er som følger:

Konklusion

Denne vejledning undersøgte, hvordan man arbejder med SQL-joins baseret på flere betingelser ved hjælp af AND- og OR-operatorerne. Dette giver mulighed for mere granulær datafiltrering.