SQL pievienošanās vairākiem nosacījumiem

Sql Pievienosanas Vairakiem Nosacijumiem



Viena no visizplatītākajām relāciju datu bāzu iezīmēm ir pievienošanās. SQL savienojumi attiecas uz divu vai vairāku tabulu datu apvienošanas procesu vienā rezultātu kopā, pamatojoties uz standarta līdzekļiem vai kolonnām.

Tabulu apvienošana ļauj mums vienā vaicājumā izgūt datus, kas tiek glabāti vairākās tabulās, kas padara to par jaudīgu rīku datu analīzei un pārskatu veidošanai.







Šajā apmācībā mēs atklāsim, kā veikt SQL savienojumus vairākos apstākļos. Mēs iemācīsimies izmantot loģiskos operatorus “UN” un “OR”, lai apvienotu datus, pamatojoties uz vairākiem nosacījumiem.



SQL pievienojas vairākiem nosacījumiem

Mēs varam norādīt vairākus nosacījumus, izmantojot AND vai VAI operatorus SQL. Šie operatori ļauj mums definēt Būla izteiksmju kopu, kas pēc tam tiek novērtēta un salīdzināta ar iegūto kopu.



Mēs izmantojam operatoru UN, lai nodrošinātu, ka visi norādītie nosacījumi ir patiesi. Ja pat viens no nosacījumiem nav patiess, visa izteiksme tiek padarīta nepatiesa. Tas padara UN operatoru par izcilu rīku ekstrēmai datu filtrēšanai.





No otras puses, mēs izmantojam operatoru VAI, ja mums ir nepieciešams, lai vismaz viens no nosacījumiem būtu patiess. Tas padara to par “brīvu” datu filtrēšanas metodi, jo iegūtajam ierakstam ir jāatbilst vismaz vienam noteiktam parametram.

Operatoru UN un OR funkcionalitāte nemainās pat SQL savienojumu gadījumā.



SQL vairāku savienojumu piemērs

Lai saprastu, kā strādāt ar savienojumiem vairākos apstākļos, vislabāk ir strādāt ar piemēru.

Šai demonstrācijai mēs izmantojam Sakila datubāzi, kas tika izstrādāta, lai izpētītu visas SQL iespējas.

Pieņemsim, ka mēs vēlamies iegūt datus no filmas un tabulām film_actor. Pirmkārt, mēs vēlamies atrast visus filmā spēlējušos aktierus, kuriem ir PG vai PG-13 vērtējums un kuru garums ir no 90 līdz 120.

Šādā gadījumā mums ir jāveic savienošana ar vairākiem nosacījumiem, kā parādīts tālāk.

ATLASĪT aktiera.vārds, aktiera.uzvārds, filma.nosaukums, filmas.izlaiduma_gads, filma.vērtējums
NO aktiera
PIEVIENOJIETIES filma_aktieris ON actor.actor_id = filmas_aktieris.aktiera_id
PIEVIENOTIES filmai filma_aktieris.filmas_id = filma.filmas_id
KUR filma.garums STARP 90 UN 120
UN filma.rating IN ( 'PG' , 'PG-13' ) ;


Kā redzat no iepriekšējā vaicājuma, mēs sakām SQL, lai veiktu savienojumu starp actor un film_actor tabulām, pamatojoties uz actor_id kolonnu. Mēs arī veicam savienojumu starp film_actor un filmas tabulām, izmantojot kolonnu film_id. Mēs nodrošinām arī divu nosacījumu definēšanu, izmantojot WHERE klauzulu, lai filtrētu rezultātu tabulu, pamatojoties uz izlaišanas gadu un filmas garumu.

Rezultātā iegūtā tabula ir šāda:


Mēs varam arī norādīt vairākus nosacījumus, pamatojoties uz operatoru VAI, kā parādīts šajā vaicājuma piemērā:

ATLASĪT filma.nosaukums, filmas.nomas_likme, kategorija.nosaukums
NO filmas
JOIN film_category ON filma.filmas_id = filmas_kategorija.filmas_id
PIEVIENOTIES kategorijai filmas_kategorija.kategorijas_id = kategorija.kategorijas_id
KUR kategorija.nosaukums IN ( 'Darbība' , 'komēdija' )
UN filma.nomas_likme > 3.00 ;


Rezultātā iegūtā tabula ir šāda:

Secinājums

Šajā apmācībā tika pētīts, kā strādāt ar SQL savienojumiem, pamatojoties uz vairākiem nosacījumiem, izmantojot operatorus UN un OR. Tas nodrošina detalizētāku datu filtrēšanu.