Usar combinaciones

Las condiciones de combinación se pueden especificar en las cláusulas FROM o WHERE, aunque se recomienda que se especifiquen en la cláusula FROM. Las cláusulas WHERE y HAVING pueden contener también condiciones de búsqueda para filtrar aún más las filas seleccionadas por las condiciones de combinación.

Las combinaciones se pueden clasificar en:

  • Combinaciones internas (la operación de combinación típica, que usa algunos operadores de comparación como = o <>). En este tipo se incluyen las combinaciones equivalentes y las combinaciones naturales.

    Las combinaciones internas usan un operador de comparación para hacer coincidir las filas de dos tablas según los valores de las columnas comunes de cada tabla. Un ejemplo sería recuperar todas las filas en las que el número de identificación de estudiante es el mismo en las tablas students y courses.

  • Combinaciones externas. Puede ser una combinación externa izquierda, derecha o completa.

    Las combinaciones externas se especifican en la cláusula FROM con uno de los siguientes conjuntos de palabras clave:

    • LEFT JOIN o LEFT OUTER JOIN.

      El conjunto de resultados de una combinación externa izquierda incluye todas las filas de la tabla de la izquierda especificada en la cláusula LEFT OUTER y no sólo aquellas en las que coincidan las columnas combinadas. Cuando una fila de la tabla de la izquierda no tiene filas coincidentes en la tabla de la derecha, la fila asociada del conjunto de resultados contiene valores NULL en todas las columnas de la lista de selección que procedan de la tabla de la derecha.

    • RIGHT JOIN o RIGHT OUTER JOIN.

      Una combinación externa derecha es lo contrario de una combinación externa izquierda. Se devuelven todas las filas de la tabla de la derecha. Cada vez que una fila de la tabla de la derecha no tenga correspondencia en la tabla de la izquierda, se devuelven valores NULL para la tabla de la izquierda.

    • FULL JOIN o FULL OUTER JOIN.

      Una combinación externa completa devuelve todas las filas de las tablas de la izquierda y la derecha. Cada vez que una fila no tenga coincidencia en la otra tabla, las columnas de la lista de selección de la otra tabla contendrán valores NULL. Cuando haya una coincidencia entre las tablas, la fila completa del conjunto de resultados contendrá los valores de datos de las tablas base.

  • Combinaciones cruzadas

    Las combinaciones cruzadas devuelven todas las filas de la tabla izquierda. Cada fila de la tabla izquierda se combina con todas las filas de la tabla de la derecha. Las combinaciones cruzadas se llaman también productos cartesianos.

A continuación, se muestra a modo de ejemplo una combinación interna que recupera los empleados que también son vendedores:

USE AdventureWorks2008R2;
GO
SELECT e.BusinessEntityID
FROM HumanResources.Employee AS e
    INNER JOIN Sales.SalesPerson AS s
    ON e.BusinessEntityID = s.BusinessEntityID

Las tablas o las vistas de la cláusula FROM se pueden especificar en cualquier orden en las combinaciones internas o externas completas. Sin embargo, el orden de las tablas o las vistas especificado sí es importante si utiliza una combinación externa izquierda o derecha. Para obtener más información acerca del orden de las tablas en las combinaciones externas izquierda y derecha, vea Usar combinaciones externas.

Para obtener más información sobre cómo utilizar diferentes tipos de combinaciones, vea los temas siguientes: