English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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);
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).
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 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”中没有匹配项,则这些行也将被列出。