English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Referencia de palabras clave SQL
INNER JOIN命令返回两个表中具有匹配值的行。
以下SQL选择带有客户信息的所有订单:
SELECT Orders.OrderID, Customers.CustomerName FROM Orders UNION JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
Nota:Si hay coincidencias entre las columnas, la palabra clave INNER JOIN seleccionará todas las filas de ambas tablas. Si hay registros que no coinciden en la tabla 'Órdenes (Orders)' con la tabla 'Clientes (Customers)', estas órdenes no se mostrarán!
La siguiente sentencia SQL selecciona todas las órdenes que contienen información de clientes y transportistas:
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);
La orden LEFT JOIN devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha. Si no hay coincidencias, los resultados desde el lado derecho son NULL.
La siguiente consulta SQL seleccionará todos los clientes y cualquier orden que puedan tener:
SELECT Customers.CustomerName, Orders.OrderID FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY Customers.CustomerName;
Nota:La palabra clave LEFT JOIN devuelve todas las filas de la tabla izquierda (tabla de clientes Customers), incluso si no hay coincidencias en la tabla derecha (tabla de órdenes Orders).
La orden RIGHT JOIN devuelve todas las filas de la tabla derecha y las coincidencias de los registros de la tabla izquierda. Si no hay coincidencias, los resultados desde el lado izquierdo son NULL.
La siguiente consulta SQL devolverá todos los empleados y todas las órdenes que podrían haber realizado:
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName FROM Orders RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID ORDER BY Orders.OrderID;
Nota:La palabra clave RIGHT JOIN devuelve todos los registros de la tabla derecha (Empleados Employees), incluso si no hay coincidencias en la tabla izquierda (Órdenes Orders).
FULL OUTER JOIN devuelve todas las filas cuando hay coincidencias en la tabla izquierda o derecha.
La siguiente sentencia SQL selecciona todos los clientes y todas las órdenes:
SELECT Customers.CustomerName, Orders.OrderID FROM Customers FULL OUTER JOIN ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName;
Nota:El keyword FULL OUTER JOIN devuelve todas las filas de la tabla izquierda (Clientes), así como todas las filas provenientes de la tabla derecha (Órdenes). Si algunas filas de 'Clientes' no tienen coincidencia en 'Órdenes', o si algunas filas de 'Órdenes' no tienen coincidencia en 'Clientes', también se listarán estas filas.