TOP

Uniri SQL

SQL JOIN

Expresia JOIN este utilizată pentru a uni rânduri din două sau mai multe tabele pe baza coloanei aferente dintre ele.


Să ne uităm la un eșantion din tabelul „Orders” („Comenzi”):

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082

Apoi, priviți eșantionul din tabelul „Customers” („Clienți”):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico

Rețineți că coloana „CustomerID” din tabelul „Orders” se referă la „CustomerID” din tabelul „Customers”. Relația dintre cele două tabele de mai sus este coloana „CustomerID”.

Putem crea apoi următoarea instrucțiune SQL (conținând INNER JOIN) care selectează înregistrările care au valori corespunzătoare în ambele tabele:

Run SQLSELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID

și asta va produce ceva de genul:

OrderIDCustomerNameOrderDate
10308Ana Trujillo Emparedados y helados1996-09-18
10365Antonio Moreno Taquería1996-11-27
10355Around the Horn1996-11-15
10383Around the Horn1996-12-16
10289B's Beverages1996-08-26

Diferite tipuri de SQL JOIN

Iată diferitele tipuri de JOIN în SQL:

  • (INNER) JOIN: returnează înregistrări care au valori care se potrivesc în ambele tabele
  • LEFT (OUTER) JOIN: returnează toate înregistrările din tabelul din stânga și înregistrările corespunzătoare din tabelul din dreapta
  • RIGHT (OUTER) JOIN: returnează toate înregistrările din tabelul din dreapta și înregistrările care se potrivesc din tabelul din stânga
  • FULL (OUTER) JOIN: returnează toate înregistrările dacă există o potrivire în tabelul din stânga sau din dreapta


  • SQL INNER JOIN SQL LEFT JOIN SQL RIGHT JOIN SQL FULL OUTER JOIN