SQL pridruživanje pod višestrukim uvjetima

Sql Pridruzivanje Pod Visestrukim Uvjetima



Jedna od najraširenijih značajki relacijskih baza podataka su spojevi. SQL spajanja odnose se na proces kombiniranja podataka iz dvije ili više tablica u jedan skup rezultata na temelju standardnih značajki ili stupaca.

Spajanje tablica omogućuje nam dohvaćanje podataka koji su pohranjeni u više tablica u jednom upitu, što ga čini moćnim alatom za analizu podataka i izvješćivanje.







U ovom vodiču otkrit ćemo kako izvesti SQL spajanja na više uvjeta. Naučit ćemo koristiti logičke operatore 'I' i 'ILI' za spajanje podataka na temelju više uvjeta.



SQL spajanja pod višestrukim uvjetima

Možemo navesti više uvjeta pomoću operatora AND ili OR u SQL-u. Ovi nam operatori omogućuju definiranje skupa Booleovih izraza koji se zatim procjenjuju i uspoređuju s rezultirajućim skupom.



Koristimo operator AND kako bismo osigurali da su svi navedeni uvjeti istiniti. Ako čak i jedan od uvjeta nije istinit, cijeli se izraz prikazuje lažnim. Ovo čini operator AND iznimnim alatom za ekstremno filtriranje podataka.





S druge strane, operator OR koristimo kada trebamo da barem jedan od uvjeta bude istinit. To ga čini 'labavijim' načinom filtriranja podataka jer rezultirajući zapis mora ispunjavati samo jedan definirani parametar.

Funkcionalnost operatora AND i OR ne mijenja se čak ni u slučaju SQL spajanja.



Primjer SQL višestrukih spajanja

Da biste razumjeli kako raditi sa spojevima na više uvjeta, najbolje je raditi s primjerom.

Za ovu demonstraciju koristimo bazu podataka Sakila koja je razvijena za istraživanje svih mogućnosti SQL-a.

Pretpostavimo da želimo dohvatiti podatke iz tablica film i film_actor. Prvo, želimo pronaći sve glumce koji su glumili u filmu koji imaju ocjenu PG ili PG-13 i duljinu između 90 i 120.

U takvom scenariju, moramo izvršiti spajanje s višestrukim uvjetima kao što je prikazano u nastavku:

ODABERITE actor.first_name, actor.last_name, film.title, film.release_year, film.rating
OD glumca
PRIDRUŽITE SE film_actor NA actor.actor_id = film_actor.actor_id
PRIDRUŽITE SE filmu NA film_actor.film_id = film.film_id
WHERE film.duljina BETWEEN 90 I 120
I film.ocjena IN ( 'PG' , 'PG-13' ) ;


Kao što možete vidjeti iz prethodnog upita, kažemo SQL-u da izvede spajanje između tablica actor i film_actor na temelju stupca actor_id. Također izvodimo spajanje između film_actor i filmskih tablica pomoću stupca film_id. Također osiguravamo definiranje dva uvjeta pomoću klauzule WHERE za filtriranje tablice rezultata na temelju godine izdanja i duljine filma.

Dobivena tablica je sljedeća:


Također možemo odrediti više uvjeta na temelju OR operatora kao što je prikazano u sljedećem primjeru upita:

SELECT film.title, film.rental_rate, category.name
IZ filma
PRIDRUŽITE SE film_category NA film.film_id = film_category.film_id
PRIDRUŽITE SE kategoriji NA film_category.category_id = category.category_id
WHERE kategorija.naziv IN ( 'Akcijski' , 'Komedija' )
I film.rent_rate > 3.00 ;


Dobivena tablica je sljedeća:

Zaključak

Ovaj vodič je istražio kako raditi sa SQL spojevima na temelju više uvjeta koristeći operatore AND i OR. To omogućuje detaljnije filtriranje podataka.