Esta documentación está archivada y no tiene mantenimiento.

Tipos de combinaciones

Cuando combina tablas, el tipo de combinación que crea afecta a las filas que aparecen en el conjunto de resultados. Puede crear los siguientes tipos de combinaciones:

  • Combinación interna   Combinación que muestra solamente las filas que tienen una coincidencia en ambas tablas combinadas. Éste es el tipo de combinación predeterminado en el Diseñador de consultas y vistas. Por ejemplo, puede combinar las tablas titles y publishers para crear un conjunto de resultados que muestre el nombre de la editorial de cada título. En una combinación interna, los títulos de los que no dispone de información sobre la editorial no se incluyen en el conjunto de resultados y tampoco hay editoriales sin títulos. El código SQL resultante para una combinación de este tipo puede tener la forma siguiente:

    SELECT     title, pub_name
    FROM         titles INNER JOIN
    publishers ON titles.pub_id = publishers.pub_id
    
    NoteNota

    Al crear una combinación interna, las columnas que contienen NULL no coinciden con ningún valor y, por lo tanto, se excluyen del conjunto de resultados. Los valores nulos no coinciden con otros valores nulos.

  • Combinación externa   Es una combinación que incluye filas incluso si no tienen filas relacionadas en la tabla combinada. Puede crear tres variaciones de una combinación externa para especificar las filas no coincidentes que han de incluirse:

    • Combinación externa izquierda   Se incluyen todas las filas de la tabla nombrada en primer lugar (la tabla "izquierda", que aparece más a la izquierda en la cláusula JOIN). No aparecen las filas no coincidentes de la tabla derecha. Por ejemplo, la instrucción SQL siguiente ilustra una combinación externa izquierda entre las tablas titles y publishers que incluye todos los títulos, incluidos los que carecen de información sobre la editorial:

      SELECT titles.title_id, 
             titles.title, 
             publishers.pub_name
      FROM titles LEFT OUTER JOIN publishers 
                  ON titles.pub_id 
                   = publishers.pub_id
      
    • Combinación externa derecha   Se incluyen todas las filas de la tabla nombrada en segundo lugar (la tabla "derecha", que aparece más a la derecha en la cláusula JOIN). No aparecen las filas no coincidentes de la tabla izquierda. Por ejemplo, una combinación externa derecha entre las tablas titles y publishers incluirá todas las editoriales, incluso las que no tienen títulos en la tabla titles. El código SQL resultante puede presentar el siguiente aspecto:

      SELECT titles.title_id, 
             titles.title, 
             publishers.pub_name
      FROM titles RIGHT OUTER JOIN publishers 
                  ON titles.pub_id 
                   = publishers.pub_id
      
    • Combinación externa completa   Se incluyen todas las filas de todas las tablas combinadas, tanto si coinciden como si no. Por ejemplo, una combinación externa completa entre titles y publishers muestra todos los títulos y todas las editoriales, incluso los que no tienen coincidencia alguna en la otra tabla.

      SELECT titles.title_id, 
             titles.title, 
             publishers.pub_name
      FROM titles FULL OUTER JOIN publishers 
                  ON titles.pub_id 
                   = publishers.pub_id
      
      NoteNota

      Algunas bases de datos, como las de Oracle, no admiten combinaciones externas completas.

  • Combinación cruzada   Es una combinación cuyo conjunto de resultados incluye una fila para cada pareja de filas posible de las dos tablas. Por ejemplo, CROSS JOIN produce un conjunto de resultados con una fila para cada combinación autor-editorial posible. El código SQL resultante puede presentar el siguiente aspecto:

    SELECT *
    FROM authors CROSS JOIN publishers 
    

Vea también

Mostrar: