MySQL MariaDB

MySQL Outer Join

MySQL Outer Join

MySQL oferă o mulțime de comenzi, care sunt necesare în timpul gestionării unei baze de date. De exemplu, de multe ori trebuie să obținem niște date din diferite tabele pe baza unor condiții. MySQL oferă apoi diferite tipuri de îmbinări pentru a obține rezultatele dorite. Să învățăm ÎNREGISTRARE STÂNGA ȘI ÎNREGISTRARE DREPTĂ din MySQL.

Nu există o astfel de declarație ca FULL OUTER JOIN în SQL, dar putem folosi o simplă JOIN pentru a obține aceleași rezultate sau prin simpla utilizare a unei instrucțiuni SELECT pe două tabele diferite.

În caz contrar, MySQL oferă ÎNREGISTRARE STÂNGA și ÎNREGISTRARE DREPTĂ pentru a obține înregistrările sau rândurile din tabelul din dreapta sau respectiv din stânga. Să încercăm câteva exemple diferite pentru a obține rezultatele dorite folosind îmbinări adecvate.

Exemple

Înainte de a începe să învățăm utilizarea STÂNGĂRII ȘI DREPTURILOR. Vom învăța cum să obținem toate datele din ambele tabele (fie comune, fie mai puțin frecvente) folosind instrucțiunea SELECT simplă și folosind CROSS JOIN cu instrucțiunea SELECT. Mai întâi, să încercăm să obținem toate datele din ambele tabele folosind instrucțiunea SELECT.

De exemplu, există 2 tabele pe care le-am obținut după numele autorului și cărți.

Cărți DESC;

Autori DESC;

Dacă vrem să obținem toate coloanele din ambele tabele. Interogarea SELECT va fi utilizată astfel:

SELECT * DIN cărți, autori;

După cum puteți vedea, avem toate coloanele din ambele tabele, fără a oferi măcar o condiție.

Dacă folosim clauza JOIN sau CROSS JOIN, ambele ne vor aduce aceleași rezultate. De exemplu:

SELECT * DIN cărți ÎNSCRIEȚI-vă la autori;

Acum, să încercăm să aplicăm CROSS JOIN:

SELECT * DIN cărți CROSS JOIN autori;

După cum puteți vedea, toate aceste întrebări ne aduc aceleași rezultate.

Cu toate acestea, nu este bine să aveți toate coloanele într-o formă atât de abstractă. Deci, pentru a obține câteva coloane specifice din tabelul din stânga sau din dreapta, există două moduri în care puteți continua; o modalitate este să utilizați nume de coloane folosind instrucțiuni SELECT sau folosind îmbinări care se potrivesc cerințelor dvs.

Bine, acum să mergem mai departe pentru a înțelege ÎNREGISTRAREA STÂNGA și ÎNREGISTRAREA DREPTĂ.

ÎNREGISTRARE STÂNGA

Să presupunem că dorim să obținem câteva coloane specifice care sunt fie din tabelul cărților sau comune între tabelele cărți și autori, pe baza unor condiții, condiția este de fapt furnizată prin compararea a două tabele diferite. De exemplu, dorim să îmbinăm două tabele, cărți și autori în care ID-ul cărții este egal cu ID-ul autorului. Ne putem aștepta la un astfel de rezultat folosind instrucțiunea LEFT Join with SELECT; Selectați interogarea cu numele coloanelor pe care doriți să le obțineți fie din tabelul cărților, fie din autori. Interogarea SELECT cu STÂNGA ÎNREGISTRARE și condiția ar fi astfel:

Alege cărți.book_name, cărți.book_id, autori.autor_id,
autori.nume_autor, autori.nume_autor
DIN cărți
AUTORI ÎNREGISTRARE ÎN STÂNGA
PE cărți.book_id = autori.autor_id;

Deoarece am menționat tabelul cărților din partea stângă, îmbinarea va primi ID-ul unui rând din tabelul cărților și va căuta același număr de identificare în tabelul autorului. Dacă găsește același număr de identificare, va afișa și coloanele date din tabelul autorului. În caz contrar, va afișa NULL în coloanele din tabelul autorului. Să executăm această interogare și să asistăm la rezultate.

După cum puteți vedea, avem rândurile din ambele tabele în care ID-ul tabelului cărților este egal cu ID-ul tabelului autorului. În ultimul rând, putem vedea, de asemenea, că nu există un număr de identificare 4 în tabelul autorului, deci a returnat NULL împotriva acestuia.

ÎNREGISTRARE DREPTĂ

În mod similar, dacă dorim să obținem niște date, fie din tabelul autorului, fie comune între cărți și tabelul autorului, pe baza unor condiții, acest tip de rezultate pot fi așteptate prin utilizarea clauzei RIGHT join și SELECT. Interogarea SELECT cu RIGHT JOIN și condiția ar fi astfel:

Alege cărți.book_name, cărți.book_id, autori.autor_id,
autori.nume_autor, autori.nume_autor
DIN cărți
RIGHT JOIN autori
PE cărți.book_id = autori.autor_id;

De data aceasta, știm că tabelul autorilor este pe partea dreaptă, așa că unirea va primi ID-ul unui rând din tabelul autorului și va căuta același număr de identificare în tabelul cărții. Dacă găsește același număr de identificare, va afișa coloanele date din tabelul cărților. Executarea interogării ar avea ca rezultat:

După cum puteți vedea, avem rândurile din ambele tabele în care ID-ul autorului este egal cu ID-ul cărții. Știm că a existat o a patra carte în tabelul cărților, deși nu am obținut-o, acest lucru se datorează DREPTULUI ÎNREGISTRARE.

Deci, așa funcționează cu adevărat ÎNREGISTRAREA STÂNGA și ÎNREGISTRAREA DREPTĂ.

Concluzie

Am învățat și am înțeles CROSS, STÂNGA și DREAPTA JOIN, precum și am învățat să le folosim pentru a obține rezultatele dorite în MySQL. De asemenea, am încercat câteva exemple diferite de JOINS pentru a înțelege conceptele într-un mod mai bun și mai profund. Așadar, continuați să vizitați site-ul nostru linuxhint.com pentru conținut mai util ca acesta.

Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...
How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...