Join externo en SQL


Hay tablas que, al intentarlas relacionar entre ellas por una columna, sus registros no se emparejan.


Por ejemplo, cuando queremos emparejar dos tablas, cuyas columnas tienen valores nulos.


No sirve un Natural Join, ya que excluye los valores nulos.


Tenemos que usar los Join externos, el cual si nos va a permitir recuperar valores nulos.


Las combinaciones externas se realizan solamente entre 2 tablas.


Hay tres tipos de combinaciones externas:

  • Left outer join: left join.

  • Right outer join: right join.

  • Full outer join: full join.


LEFT JOIN:

Localiza los registros de la primera tabla que se corresponden con registros de la segunda.


Si no localiza coincidencias, devuelve los resultados de la segunda seteados a null.


  • Ejemplo: select first_name nombre, department_name 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í si nos permite especificar el campo de unión.


Es importante el orden de las tablas, ya que la tabla de la izquierda es la que utilizamos 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 nombre, department_name 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 nombre, department_name 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 nombre, department_name 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 clausula WHERE:

  • Ejemplo: select first_name nombre, department_name 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 nombre, department_name 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.


Nos mostrara todos los registros de ambas tablas.


  • Ejemplo: select first_name nombre, department_name departamento from employees e full join departments d on e.department_id = d.department_id;


Ejemplos Join Externo




0 visualizaciones0 comentarios

Entradas Recientes

Ver todo