SQL prisijungimas prie kelių sąlygų

Sql Prisijungimas Prie Keliu Salygu



Viena iš labiausiai paplitusių reliacinių duomenų bazių savybių yra sujungimai. SQL sujungimai reiškia dviejų ar daugiau lentelių duomenų sujungimo į vieną rezultatų rinkinį, pagrįstą standartinėmis funkcijomis arba stulpeliais, procesą.

Lentelių sujungimas leidžia mums gauti duomenis, kurie saugomi keliose lentelėse vienoje užklausoje, todėl tai yra galingas duomenų analizės ir ataskaitų teikimo įrankis.







Šioje pamokoje sužinosime, kaip atlikti SQL sujungimus esant kelioms sąlygoms. Išmoksime naudoti loginius operatorius „AND“ ir „OR“, kad sujungtume duomenis pagal kelias sąlygas.



SQL prisijungia esant kelioms sąlygoms

Mes galime nurodyti kelias sąlygas naudodami AND arba OR operatorius SQL. Šie operatoriai leidžia mums apibrėžti Būlio išraiškų rinkinį, kuris vėliau įvertinamas ir palyginamas su gauta rinkiniu.



Siekdami užtikrinti, kad visos nurodytos sąlygos yra teisingos, naudojame operatorių AND. Jei net viena iš sąlygų nėra teisinga, visa išraiška tampa klaidinga. Dėl to operatorius AND yra išskirtinis įrankis ekstremaliam duomenų filtravimui.





Kita vertus, mes naudojame operatorių OR, kai reikia, kad bent viena iš sąlygų būtų teisinga. Tai daro jį „laisvesniu“ duomenų filtravimo metodu, nes gautas įrašas turi atitikti tik vieną apibrėžtą parametrą.

AND ir OR operatorių funkcionalumas nesikeičia net ir SQL sujungimų atveju.



SQL kelių prisijungimų pavyzdys

Norint suprasti, kaip dirbti su sujungimais keliomis sąlygomis, geriausia dirbti su pavyzdžiu.

Šiam demonstravimui naudojame Sakila duomenų bazę, kuri buvo sukurta siekiant ištirti visas SQL galimybes.

Tarkime, kad norime gauti duomenis iš filmo ir lentelių film_actor. Pirma, norime rasti visus filme vaidinusius aktorius, kurie yra įvertinti PG arba PG-13 ir kurių ilgis yra nuo 90 iki 120.

Tokiame scenarijuje turime atlikti sujungimą su keliomis sąlygomis, kaip parodyta toliau:

PASIRINKITE aktoriaus.vardas, aktoriaus.pavarde, filmo.pavadinimas, filmo.išleidimo_metai, filmo.vertinimas
IŠ aktoriaus
PRISIJUNK filmo_aktorius PRIE actor.actor_id = filmo_actor.actor_id
PRISIJUNK prie filmo PRIE filmo_aktorius.filmo_id = film.filmo_id
KUR filmas.ilgis TARP 90 IR 120
IR filmas.rating IN ( 'PG' , „PG-13“ ) ;


Kaip matote iš ankstesnės užklausos, mes nurodome SQL atlikti sujungimą tarp veikėjo ir filmo_aktorius lentelių, remiantis stulpeliu actor_id. Taip pat atliekame film_actor ir filmo lentelių sujungimą naudodami film_id stulpelį. Taip pat užtikriname, kad apibrėžtume dvi sąlygas, naudodami WHERE sąlygą, kad filtruotume rezultatų lentelę pagal išleidimo metus ir filmo ilgį.

Gauta lentelė yra tokia:


Taip pat galime nurodyti kelias sąlygas pagal operatorių OR, kaip parodyta toliau pateiktoje užklausos pavyzdyje:

PASIRINKITE filmą.pavadinimas, filmo.nuomos_kainis, kategorija.pavadinimas
IŠ filmo
PRISIJUNK filmo_kategorijai PRIE filmo.filmo_id = filmo_kategorija.filmo_id
PRISIJUNGTI prie kategorijos filmo_kategorija.kategorijos_id = kategorija.kategorijos_id
KUR kategorija.vardas IN ( 'Veiksmas' , 'komedija' )
IR filmas.nuomos_kainis > 3.00 val ;


Gauta lentelė yra tokia:

Išvada

Šioje pamokoje buvo nagrinėjama, kaip dirbti su SQL sujungimais, remiantis keliomis sąlygomis, naudojant AND ir OR operatorius. Tai suteikia išsamesnį duomenų filtravimą.