English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Referência de Palavras-chave SQL
INNER JOIN命令返回两个表中具有匹配值的行。
以下SQL选择带有客户信息的所有订单:
SELECT Orders.OrderID, Customers.CustomerName FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
Atenção:A palavra-chave INNER JOIN selecciona todas as linhas das duas tabelas desde que haja correspondências entre as colunas. Se houver registros não correspondentes na tabela 'Encomendas (Orders)' e na tabela 'Clientes (Customers)', essas encomendas não serão exibidas!
A seguinte consulta SQL selecciona todas as encomendas que contêm informações de clientes e transportadoras:
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);
A instrução LEFT JOIN retorna todas as linhas da tabela esquerda e as linhas correspondentes da tabela direita. Se não houver correspondência, os resultados da direita serão NULL.
A seguinte consulta SQL selecciona todos os clientes e todas as encomendas que eles podem possuir:
SELECT Customers.CustomerName, Orders.OrderID FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY Customers.CustomerName;
Atenção:A palavra-chave LEFT JOIN retorna todas as linhas da tabela esquerda (Tabela de clientes Customers), mesmo que não haja correspondência na tabela direita (Tabela de encomendas Orders).
A instrução RIGHT JOIN retorna todas as linhas da tabela direita e os registros correspondentes da tabela esquerda. Se não houver correspondência, os resultados da esquerda serão NULL.
A seguinte consulta SQL retornará todos os funcionários e todas as encomendas que eles podem ter feito:
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName FROM Orders RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID ORDER BY Orders.OrderID;
Atenção:A palavra-chave RIGHT JOIN retorna todos os registros da tabela direita (Funcionários Employees), mesmo que não haja correspondência na tabela esquerda (Encomendas Orders).
FULL OUTER JOIN retorna todas as linhas quando há itens correspondentes na tabela esquerda ou direita.
A seguinte consulta SQL selecciona todos os clientes e todas as encomendas:
SELECT Customers.CustomerName, Orders.OrderID FROM Customers FULL OUTER JOIN ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName;
Atenção:FULL OUTER JOIN retorna todas as linhas da tabela esquerda (Clientes Customers), e todas as linhas da tabela direita (Pedidos Orders). Se algumas linhas no 'Clientes Customers' não tiverem correspondente no 'Pedidos Orders', ou se algumas linhas no 'Pedidos Orders' não tiverem correspondente no 'Clientes Customers', essas linhas também serão listadas.