logo
MyWebStudies - Página de inicio
INGRESAR

REGISTRARSE
Buscador

      4.4.1. Ejemplos - Join Externo

Selecciona el idioma :

Por favor, inicia sesión para que tu progreso sea registrado. Sin iniciar sesión, podrás visualizar el video pero no se aumentará tu avance en el curso

Transcripción       4.4.1. Ejemplos - Join Externo


Existen tablas que, al intentar relacionarlas mediante una columna, no emparejan sus registros. Por ejemplo, al intentar unir dos tablas cuyas columnas contienen valores nulos. Un NATURAL JOIN no es adecuado en estos casos, ya que excluye los valores nulos.

En su lugar, es necesario utilizar JOIN externos, que permiten recuperar valores nulos. Las combinaciones externas se realizan exclusivamente entre dos tablas. Existen tres tipos de combinaciones externas:

  • Left outer join: LEFT JOIN
  • Right outer join: RIGHT JOIN
  • Full outer join: FULL JOIN

LEFT JOIN: Encuentra todos los registros de la primera tabla que corresponden con los registros de la segunda tabla. Si no encuentra coincidencias, devuelve los resultados de la segunda seteados a null.

Ejemplo:SELECT first_name AS nombre, department_name AS departamento FROM hr.employees e LEFT JOIN hr.departments d ON e.department_id = d.department_id.

La diferencia con el NATURAL LEFT JOIN es que aquí podemos especificar el campo de unión. Es importante el orden de las tablas, ya que la tabla de la izquierda es la que se usa para localizar registros en la tabla de la derecha. Puede tener cláusula WHERE que restrinja el resultado de la consulta.

Ejemplo:SELECT first_name AS nombre, department_name AS departamento FROM employees e LEFT JOIN departments d ON e.department_id = d.department_id WHERE d.department_id IS NOT NULL.

Ejemplo:SELECT first_name AS nombre, department_name AS departamento FROM employees e LEFT JOIN departments d ON e.department_id = d.department_id WHERE d.department_id IS NULL.

RIGHT JOIN: Trabaja igual que LEFT JOIN solo que la tabla derecha es la que localiza los registros en la tabla izquierda.

Ejemplo:SELECT first_name AS nombre, department_name AS departamento FROM hr.employees e RIGHT JOIN hr.departments d ON e.department_id = d.department_id.

La diferencia con el NATURAL RIGHT JOIN es que aquí podemos especificar el campo de unión. Al igual que en LEFT JOIN es importante el orden de las tablas. Puede tener cláusula WHERE:

  • Ejemplo:SELECT first_name AS nombre, department_name AS departamento FROM employees e RIGHT JOIN departments d ON e.department_id = d.department_id WHERE e.department_id IS NOT NULL.
  • Ejemplo:SELECT first_name AS nombre, department_name AS departamento FROM employees e RIGHT JOIN departments d ON e.department_id = d.department_id WHERE e.department_id IS NULL;

FULL OUTER JOIN O FULL JOIN: Es una combinación externa completa. Muestra todos los registros de ambas tablas.

Ejemplo:SELECT first_name AS nombre, department_name AS departamento FROM employees e FULL JOIN departments d ON e.department_id = d.department_id;


ejemplos join externo

¿Hay algún error o mejora?

¿Dónde está el error?

¿Cúal es el error?