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”):
ProductID | OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|---|
1 | 10248 | 90 | 5 | 1996-07-04 | 3 |
2 | 10249 | 81 | 6 | 1996-07-05 | 1 |
3 | 10250 | 34 | 4 | 1996-07-08 | 2 |
Apoi, priviți eșantionul din tabelul „Customers” („Clienți”):
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
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:
OrderID | CustomerName | OrderDate |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 1996-09-18 |
10365 | Antonio Moreno Taquería | 1996-11-27 |
10355 | Around the Horn | 1996-11-15 |
10383 | Around the Horn | 1996-12-16 |
10289 | B's Beverages | 1996-08-26 |
Iată diferitele tipuri de JOIN în SQL: