SQL Join på flere betingelser

Sql Join Pa Flere Betingelser



En av de mest utbredte egenskapene til relasjonsdatabaser er sammenføyninger. SQL-koblinger refererer til prosessen med å kombinere data fra to eller flere tabeller til et enkelt resultatsett basert på standardfunksjoner eller kolonner.

Ved å slå sammen tabellene kan vi hente dataene som er lagret på tvers av flere tabeller i en enkelt spørring, noe som gjør det til et kraftig verktøy for dataanalyse og rapportering.







I denne opplæringen vil vi finne ut hvordan du utfører SQL-koblingene på flere forhold. Vi vil lære å bruke 'AND' og 'OR' logiske operatorer for å slå sammen dataene basert på flere forhold.



SQL kobler sammen på flere betingelser

Vi kan spesifisere flere forhold ved å bruke AND- eller OR-operatorene i SQL. Disse operatorene lar oss definere et sett med boolske uttrykk som deretter evalueres og sammenlignes med det resulterende settet.



Vi bruker AND-operatoren for å sikre at alle de angitte betingelsene er sanne. Hvis selv en av betingelsene ikke er sann, blir hele uttrykket gjengis falsk. Dette gjør AND-operatøren til et eksepsjonelt verktøy for ekstrem datafiltrering.





På den annen side bruker vi OR-operatoren når vi trenger minst en av betingelsene for å være sann. Dette gjør det til en mer 'løs' datafiltreringsmetode da den resulterende posten bare må oppfylle minst én definert parameter.

Funksjonaliteten til AND- og OR-operatorene endres ikke selv ved SQL-koblinger.



Eksempel på SQL Multiple Joins

For å forstå hvordan man jobber med sammenføyninger på flere forhold, er det best å jobbe med et eksempel.

For denne demonstrasjonen bruker vi Sakila-databasen som ble utviklet for å utforske alle egenskapene til SQL.

Anta at vi ønsker å hente dataene fra filmen og film_actor-tabellene. Først vil vi finne alle skuespillerne som spilte hovedrollen i filmen som enten er rangert som PG eller PG-13 og som har lengden mellom 90 og 120.

I et slikt scenario må vi utføre en sammenføyning med flere betingelser som vist i følgende:

SELECT actor.first_name, actor.last_name, film.title, film.release_year, film.rating
FRA skuespiller
BLI MED TIL film_actor PÅ actor.actor_id = film_actor.actor_id
BLI MED TIL film PÅ film_actor.film_id = film.film_id
HVOR film.lengde MELLOM 90 OG 120
OG film.rating IN ( 'PG' , 'PG-13' ) ;


Som du kan se fra forrige spørring, ber vi SQL om å utføre en sammenføyning mellom skuespilleren og film_actor-tabellene basert på actor_id-kolonnen. Vi utfører også en sammenføyning mellom film_actor og filmtabellene ved å bruke kolonnen film_id. Vi sørger også for å definere to forhold ved å bruke WHERE-klausulen for å filtrere resultattabellen basert på utgivelsesåret og filmens lengde.

Den resulterende tabellen er som følger:


Vi kan også spesifisere de flere betingelsene basert på OR-operatoren som vist i følgende eksempelspørring:

VELG film.tittel, film.leiepris, kategori.navn
FRA film
BLI MED TIL film_category PÅ film.film_id = film_category.film_id
BLI MED I kategorien PÅ film_category.category_id = category.category_id
HVOR kategori.navn IN ( 'Handling' , 'Komedie' )
OG film.rental_rate > 3.00 ;


Den resulterende tabellen er som følger:

Konklusjon

Denne opplæringen utforsket hvordan du arbeider med SQL-koblinger basert på flere forhold ved å bruke AND- og OR-operatorene. Dette sørger for mer detaljert datafiltrering.