Cómo crear combinaciones externas (Visual Database Tools)

De forma predeterminada, el Diseñador de consultas y vistas crea una combinación interna entre tablas. Las combinaciones internas eliminan las filas que no coinciden con alguna fila de la otra tabla. Sin embargo, las combinaciones externas devuelven todas las filas de una de las tablas o vistas mencionadas en la cláusula FROM, como mínimo, siempre que tales filas cumplan alguna de las condiciones de búsqueda de WHERE o HAVING. Si desea incluir filas de datos en el conjunto de resultados que no se correspondan con ninguna fila de la tabla combinada, puede crear una combinación externa.

Cuando se crea una combinación externa, el orden en que aparecen las tablas en la instrucción SQL (el que se muestra en el panel SQL) es importante. La primera tabla que se agrega se convierte en la tabla "de la izquierda", y la segunda en la "de la derecha". El orden real en el que aparecen las tablas en el panel Diagrama es irrelevante. Cuando se especifica una combinación externa izquierda o derecha, se hace referencia al orden en el que se agregaron las tablas a la consulta y al orden en el que aparecen en la instrucción SQL en el panel SQL.

Para crear una combinación externa

  1. Cree la combinación, ya sea automática o manualmente. Para obtener información detallada, vea Cómo combinar tablas automáticamente (Visual Database Tools) o Cómo combinar tablas manualmente (Visual Database Tools).

  2. Seleccione la línea de combinación en el panel Diagrama y, a continuación, en el menú Diseñador de consultas, elija Seleccionar todas las filas de <nombreDeTabla> y seleccione el comando que contiene la tabla en la que desea incluir filas adicionales.

    • Seleccione la primera tabla para crear una combinación externa izquierda.

    • Seleccione la segunda tabla para crear una combinación externa derecha.

    • Seleccione ambas tablas para crear una combinación externa completa.

Cuando se especifica una combinación externa, el Diseñador de consultas y vistas modifica la línea de combinación para indicar que se trata de una combinación externa.

Asimismo, el Diseñador de consultas y vistas modifica la instrucción SQL en el panel SQL para reflejar el cambio en el tipo de combinación, como se muestra en la siguiente instrucción:

SELECT employee.job_id, employee.emp_id,
   employee.fname, employee.minit, jobs.job_desc
FROM employee LEFT OUTER JOIN jobs ON 
    employee.job_id = jobs.job_id

Puesto que las combinaciones externas incluyen filas no coincidentes, puede utilizarlas para buscar filas que infrinjan las restricciones FOREIGN KEY. Para ello, cree una combinación externa y, a continuación, agregue una condición de búsqueda para buscar las filas en las que la columna de clave principal de la tabla de la derecha sea NULL. Por ejemplo, la siguiente combinación externa busca las filas de la tabla employee que no tienen filas correspondientes en la tabla jobs:

SELECT employee.emp_id, employee.job_id
FROM employee LEFT OUTER JOIN jobs 
   ON employee.job_id = jobs.job_id
WHERE (jobs.job_id IS NULL)