English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Metodo di utilizzo e esempio del termine JOIN in SQL

SQL关键字参考

JOIN INTERNO

Il comando JOIN INTERNO restituisce le righe che hanno valori corrispondenti in entrambi i tavoli.

Ecco un esempio di SQL che seleziona tutti gli ordini con informazioni sui clienti:

SELEZIONA Orders.OrderID, Customers.CustomerName DALLA Orders
JOIN INTERNO Customers SULLA condizione Orders.CustomerID = Customers.CustomerID;

注意:L'indicatore INNER JOIN seleziona tutte le righe dalle due tabelle quando ci sono corrispondenze tra le colonne. Se ci sono record non corrispondenti nella tabella 'Ordini (Orders)' rispetto alla tabella 'Clienti (Customers)', questi ordini non verranno visualizzati!

La seguente query SQL seleziona tutti gli ordini che contengono informazioni sui clienti e sui corrieri:

SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID);
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);

LEFT JOIN

Il comando LEFT JOIN restituisce tutte le righe dalla tabella sinistra e le corrispondenze dalla tabella destra. Se non ci sono corrispondenze, i risultati sono NULL dalla parte destra.

La seguente query SQL seleziona tutti i clienti e tutti gli ordini che potrebbero possedere:

 SELECT Customers.CustomerName, Orders.OrderID 
 FROM Customers
 LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
 ORDER BY Customers.CustomerName;

注意:Il comando LEFT JOIN restituisce tutte le righe della tabella sinistra (Customers) anche se non ci sono corrispondenze nella tabella destra (Orders).

RIGHT JOIN

Il comando RIGHT JOIN restituisce tutte le righe dalla tabella destra e le corrispondenze dalla tabella sinistra. Se non ci sono corrispondenze, i risultati sono NULL dalla parte sinistra.

La seguente query SQL restituirà tutti gli impiegati e tutti gli ordini che potrebbero aver effettuato:

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;

注意:Il comando RIGHT JOIN restituisce tutte le righe della tabella destra (Employees) anche se non ci sono corrispondenze nella tabella sinistra (Orders).

FULL OUTER JOIN

FULL OUTER JOIN restituisce tutte le righe quando esiste una corrispondenza nella tabella sinistra o destra.

La seguente query SQL seleziona tutti i clienti e tutte le ordini:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN  
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

注意:FULL OUTER JOIN关键字返回所有行左表(客户 Customers),以及所有来自右表(订单 Orders)的行。如果“客户 Customers”中的某些行在“订单 Orders”中没有匹配项,或者在“订单 Orders”中的某些行在“客户 Customers”中没有匹配项,则这些行也将被列出。

SQL关键字参考