MySQL MariaDB

Vanjsko pridruživanje MySQL-a

Vanjsko pridruživanje MySQL-a

MySQL pruža puno naredbi koje su potrebne tijekom upravljanja bazom podataka. Na primjer, često moramo dobiti neke podatke iz različitih tablica na temelju nekih uvjeta. MySQL tada nudi različite vrste spajanja kako bi se dobili željeni rezultati. Naučimo LIJEVO I DESNO PRIDRUŽIVANJE MySQL-a.

U SQL-u ne postoji takva izjava kao FULL OUTER JOIN, ali možemo koristiti jednostavno JOIN za dobivanje istih rezultata ili jednostavno upotrebom SELECT naredbe preko dvije različite tablice.

Inače, MySQL pruža LIJEVA PRIDRUŽITE i PRAVO PRIDRUŽITE da biste dobili zapise ili retke iz desne odnosno lijeve tablice. Isprobajmo nekoliko različitih primjera kako bismo dobili željene rezultate pomoću odgovarajućih spajanja.

Primjeri

Prije nego što počnemo učiti upotrebu LIJEVOG i DESNOG PRIDRUŽIVANJA. Naučit ćemo kako dobiti sve podatke iz obje tablice (uobičajene ili neuobičajene) pomoću jednostavne naredbe SELECT i korištenja CROSS JOIN s naredbom SELECT. Prvo, pokušajmo dobiti sve podatke iz obje tablice pomoću naredbe SELECT.

Na primjer, postoje 2 tablice koje smo dobili prema imenu autora i knjigama.

DESC knjige;

Autori DESC-a;

Ako želimo dobiti sve stupce iz obje tablice. Upit SELECT koristit će se ovako:

ODABERITE * IZ knjiga, autori;

Kao što vidite, imamo sve stupce iz obje tablice, a da čak nismo naveli uvjet.

Ako koristimo klauzulu JOIN ili CROSS JOIN, oboje će nam donijeti iste rezultate. Na primjer:

ODABERI * IZ knjiga PRIDRUŽITE SE autorima;

Pokušajmo primijeniti CROSS JOIN:

ODABERI * IZ knjiga PRESJEDI SE autorima;

Kao što možete vidjeti, svi ovi upiti donose nam iste rezultate.

Međutim, nije dobro imati sve stupce u tako apstraktnom obliku. Dakle, da biste dobili nekoliko određenih stupaca s lijeve ili desne tablice, postoje dva načina na koja biste mogli nastaviti; jedan od načina je da nazive stupaca koristite koristeći SELECT izjave ili spajanja koja odgovaraju vašim zahtjevima.

Dobro, sada krenimo naprijed kako bismo razumjeli LIJEVO PRIDRUŽENO i DESNO PRIDRUŽENO.

LIJEVA PRIDRUŽITE

Pretpostavimo da želimo dobiti neke određene stupce koji su ili iz tablice knjiga ili zajednički između tablice knjiga i autora, na temelju nekog uvjeta, uvjet je zapravo osiguran usporedbom dviju različitih tablica. Na primjer, želimo spojiti dvije tablice, knjige i autore gdje je ID knjige jednak autorskom ID-u. Takav rezultat možemo očekivati ​​pomoću izraza LEFT Join with SELECT; SELECT upit s imenima stupaca koje želite dobiti iz tablice knjiga ili autora. Upit SELECT s LIJEVIM PRIDRUŽIVANJEM i uvjetom bio bi sljedeći:

ODABERITE knjige.ime_knjige, knjige.book_id, autori.autor_id,
autori.ime_autora, autori.ime_autora
IZ knjiga
LIJEVO PRIDRUŽITE autorima
NA knjige.book_id = autori.author_id;

Budući da smo spomenuli tablicu knjiga s lijeve strane, spoj će dobiti ID jednog retka iz tablice knjiga i tražiti isti ID broj u autorskoj tablici. Ako pronađe isti ID broj, prikazat će se i zadani stupci iz autorove tablice. Inače će u stupcima autorove tablice prikazati NULL. Izvršimo ovaj upit i posvjedočimo rezultatima.

Kao što vidite, imamo retke iz obje tablice gdje je ID tablice knjiga jednak ID-u autorove tablice. U posljednjem redu također možemo vidjeti da u tablici autora nema ID broj 4, pa je protiv njega vratio NULL.

PRAVO PRIDRUŽITE

Slično tome, ako želimo dobiti neke podatke, bilo iz autorske tablice ili zajedničke između knjiga i autorske tablice, na temelju nekih uvjeta, ovakve se rezultate mogu očekivati ​​pomoću klauzule RIGHT join i SELECT. Upit SELECT s DESNIM PRIDRUŽIVANJEM i uvjetom bio bi sljedeći:

ODABERITE knjige.ime_knjige, knjige.book_id, autori.autor_id,
autori.ime_autora, autori.ime_autora
IZ knjiga
PRAVO PRIDRUŽITE autorima
NA knjige.book_id = autori.author_id;

Ovaj put znamo da je tablica autora s desne strane, pa će spoj dobiti ID jednog retka iz autorske tablice i tražiti isti ID broj u tablici knjige. Ako pronađe isti ID broj, prikazat će se zadani stupci iz tablice knjiga. Izvršenje upita rezultiralo bi ovim:

Kao što vidite, imamo retke iz obje tablice u kojima je ID autora jednak ID-u knjige. Znamo da je u tablici knjiga bila četvrta knjiga, iako je nismo dobili, to je zbog PRAVOG PRIDRUŽIVANJA.

Dakle, ovo uistinu funkcionira LIJEVO PRIDRUŽENO i DESNO PRIDRUŽENO.

Zaključak

Naučili smo i razumjeli KRIŽNI, LIJEVI i DESNI PRIDRUŽIVANJE, kao i naučili ih koristiti za postizanje željenih rezultata u MySQL-u. Također smo isprobali nekoliko različitih primjera JOINS da bismo bolje i dublje razumjeli koncepte. Stoga nastavite posjećivati ​​našu web stranicu linuxhint.com za korisniji ovakav sadržaj.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...
Microsoft Sculpt Touch bežični miš pregled
Nedavno sam čitao o Microsoft Sculpt Touch bežični miš i odlučio ga kupiti. Nakon što sam ga neko vrijeme koristio, odlučio sam s njim podijeliti svoj...