Rezumat: în acest tutorial, veți învăța cum să utilizați clauza SQL Server RIGHT JOIN
pentru a interoga date din două tabele.
Introducere la clauza SQL Server RIGHT JOIN
Clauza RIGHT JOIN
combină date din două sau mai multe tabele. Clauza RIGHT JOIN
începe să selecteze datele din tabelul din dreapta și să le potrivească cu rândurile din tabelul din stânga. Clauza RIGHT JOIN
returnează un set de rezultate care include toate rândurile din tabelul din dreapta, indiferent dacă acestea au sau nu rânduri corespunzătoare din tabelul din stânga. Dacă un rând din tabelul din dreapta nu are nici un rând corespondent din tabelul din stânga, coloana din tabelul din stânga din setul de rezultate va avea nul.
În cele ce urmează este prezentată sintaxa clauzei RIGHT JOIN
:
Code language: SQL (Structured Query Language) (sql)
În această sintaxă, T1 este tabelul din stânga și T2 este tabelul din dreapta.
Rețineți că RIGHT JOIN
și RIGHT OUTER JOIN
este același lucru. Cuvântul cheie OUTER
este opțional.
Diagrama Venn următoare ilustrează operația RIGHT JOIN
:
SQL Server RIGHT JOIN exemplu
Pentru demonstrație vom folosi tabelele sales.order_items
și production.products
din baza de date de probă.
Următoarea instrucțiune returnează toate order_id
din tabelul sales.order_items
și numele produsului din tabelul production.products
:
Code language: SQL (Structured Query Language) (sql)
Iată rezultatul:
Interogarea a returnat toate rândurile din tabelul production.products
(tabelul din dreapta) și rândurile din tabelul sales.order_items
(tabelul din stânga). Dacă un produs nu are nicio vânzare, coloana order_id
va avea valoarea nulă.
Pentru a obține produsele care nu au vânzări, adăugați o clauză WHERE
la interogarea de mai sus pentru a filtra produsele care au vânzări:
Code language: SQL (Structured Query Language) (sql)
În imaginea următoare este prezentată ieșirea:
Diagrama Venn următoare ilustrează operațiunea RIGHT JOIN
de mai sus:
În acest tutorial, ați învățat cum să utilizați SQL Server RIGHT JOIN
pentru a interoga date din două tabele.