SQL Join på flera villkor

Sql Join Pa Flera Villkor



En av de vanligaste egenskaperna hos relationsdatabaser är kopplingar. SQL-kopplingar hänvisar till processen att kombinera data från två eller flera tabeller till en enda resultatuppsättning baserat på standardfunktioner eller kolumner.

Genom att gå med i tabellerna kan vi hämta data som lagras i flera tabeller i en enda fråga, vilket gör det till ett kraftfullt verktyg för dataanalys och rapportering.







I den här handledningen kommer vi att upptäcka hur man utför SQL-kopplingar på flera villkor. Vi kommer att lära oss att använda de logiska operatorerna 'OCH' och 'ELLER' för att sammanfoga data baserat på flera villkor.



SQL sammanfogar på flera villkor

Vi kan specificera flera villkor med AND- eller OR-operatorerna i SQL. Dessa operatorer tillåter oss att definiera en uppsättning booleska uttryck som sedan utvärderas och jämförs med den resulterande uppsättningen.



Vi använder AND-operatorn för att säkerställa att alla angivna villkor är sanna. Om ens ett av villkoren inte är sant, blir hela uttrycket falskt. Detta gör AND-operatören till ett exceptionellt verktyg för extrem datafiltrering.





Å andra sidan använder vi OR-operatorn när vi behöver minst ett av villkoren för att vara sant. Detta gör det till en mer 'lös' datafiltreringsmetod eftersom den resulterande posten endast måste uppfylla minst en definierad parameter.

Funktionaliteten hos AND- och OR-operatorerna ändras inte ens i fallet med SQL-kopplingar.



Exempel på SQL Multiple Joins

För att förstå hur man arbetar med sammanfogningar på flera villkor är det bäst att arbeta med ett exempel.

För denna demonstration använder vi Sakila-databasen som utvecklades för att utforska alla funktioner i SQL.

Anta att vi vill hämta data från filmen och film_actor-tabellerna. Först vill vi hitta alla skådespelare som medverkade i filmen som antingen är rankade PG eller PG-13 och som har en längd mellan 90 och 120.

I ett sådant scenario måste vi utföra en koppling med flera villkor som visas i följande:

SELECT actor.first_name, actor.last_name, film.title, film.release_year, film.rating
FRÅN skådespelare
GÅ MED i film_actor PÅ actor.actor_id = film_actor.actor_id
GÅ MED i filmen PÅ film_actor.film_id = film.film_id
VAR film.längd MELLAN 90 OCH 120
OCH film.betyg IN ( 'PG' , 'PG-13' ) ;


Som du kan se från föregående fråga ber vi SQL att utföra en koppling mellan skådespelaren och film_actor-tabellerna baserat på actor_id-kolumnen. Vi utför också en koppling mellan film_actor och filmtabellerna med hjälp av kolumnen film_id. Vi ser också till att definiera två villkor med hjälp av WHERE-satsen för att filtrera resultattabellen baserat på släppåret och filmens längd.

Den resulterande tabellen är som följer:


Vi kan också specificera flera villkor baserat på OR-operatorn som visas i följande exempelfråga:

VÄLJ film.title, film.rental_rate, category.name
FRÅN film
JOIN film_category PÅ film.film_id = film_category.film_id
JOIN kategori PÅ film_category.category_id = category.category_id
WHERE category.name IN ( 'Handling' , 'Komedi' )
OCH film.rental_rate > 3.00 ;


Den resulterande tabellen är som följer:

Slutsats

Den här handledningen utforskade hur man arbetar med SQL-kopplingar baserat på flera villkor med hjälp av AND- och ELLER-operatorerna. Detta ger en mer detaljerad datafiltrering.