Únete declaración en SQL

Esta operación non é necesaria desde un rexistro nunha táboa para ter un rexistro relacionado co rexistro. O rexistro mantense na táboa combinada aínda que non hai correspondente na outra táboa.

Hai tres tipos de combinacións externas, a esquerda, a unión correcta e a conexión completa, onde se toman todos os rexistros Da mesa á esquerda ou á táboa correcta, ou todos os rexistros respectivamente.

xemped îdeditar

Diagrama de Venn que representa a esquerda de unión, entre as táboas A e B, dunha instrución SQL

O resultado desta operación sempre contén todos os rexistros da táboa da esquerda (a primeira táboa mencionada na consulta), independentemente de que exista un rexistro correspondente na táboa da dereita.

A esquerda A declaración devolve o par de todos os valores da mesa esquerda cos valores da táboa correcta correspondente, se hai, ou devolver un valor nulo nulo nos campos do TA Bla dereita cando non hai correspondencia.

A diferenza do resultado presentado nos exemplos de combinación interna onde non se mostrou o empregado cuxo departamento non existía, no seguinte exemplo, presentaranse empregados co seu respectivo departamento e, ademais, un empregado cuxo departamento non existe.

O empregado que non ten apartamento está situado na zona amarela do diagrama á dereita, mentres que os empregados co departamento están na zona de laranxa, na intersección dun e b.

Exemplo de esquerda para a combinación externa:

 SELECT * FROM empleado LEFT OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

TD

empregado departamento
apelido idDepartment nome idDepartment
33 33 33 andrade 31 Vendas 31
Róbinson 34 Produción 34 Zolano 34 34
GASPAR 36 null null
Steinberg 33 Enxeñaría 33

Únete á esquerda excluíndo a intersección

Diagrama de Venn que representa a esquerda, entre as táboas A e B, engadindo unha condición onde as teclas B son nulas

Se desexa mostrar só os rexistros da primeira táboa que non teñen correspondente no segundo, pode engadir a condición n adecuado na cláusula onde. Isto dará aos empregados que non están asignados a ningún departamento, que no diagrama da dereita están representados en amarelo.

 SELECT * FROM empleado LEFT OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento WHERE departamento.IDDepartamento IS NULL

empregado departamento
apelido idDepartment nome idDepartment
GASPAR 36 null null

Dereito Únete ou right joineditar

Diagrama de Venn que representa a unión correcta, entre as táboas A e B, dunha instrución SQL

Esta operación é unha imaxe reflectida do anterior; O resultado desta operación sempre contén todos os rexistros da táboa da dereita (a segunda táboa mencionada na consulta), independentemente de que exista ou non un rexistro correspondente na táboa da esquerda. o A oración directa dereita devolve todos os valores da táboa correcta cos valores da táboa esquerda correspondente, se hai ou devolver un valor nulo nulo nos campos da táboa esquerda cando non hai correspondencia.

No diagrama da dereita, os departamentos que non teñen empregados están na zona verde mentres os departamentos dos empregados están na área de laranxa, na intersección dun e B.

Ejemplo de dereito Únete a la combinación externa:

 SELECT * FROM empleado RIGHT OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

Empleado Departamento
apelido IDDepartamento NombreDepartamento IDDepartamento
Zolano

34

producción

34

Jordan

33

Ingeniería

33

Robinson

34

producción

34

Steinberg

33

Ingeniería

33

Andrade

31

Ventas

31

máis máis

catálogo Cadeo

35

En este caso El Área de Mercadeo fue presentada nos resultados, aunque intensa ou Hay empleados rexistrados en dicha área.

Right Únete excluyendo la intersecciónEditar

diagrama de Venn representando El dereita xúntanse, Entre las tablas a y B, agregando una condicion Donde las claves de cara nulas

si se quieren Mostrar los Rexistros solo de Tabla de la Departamento de That tengan ou correspondientes en la Tabla de Empleado, é puede agregar la adecuada condición en la cláusula Where. Nos segundo esto that los departamentos ou tengan asignados ningun empleado. En el diagrama de la Derecha, esto se represen En verde.

 SELECT * FROM empleado RIGHT OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento WHERE empleado.IDDepartamento IS NULL

Empleado Departamento
apelido IDDepartamento NombreDepartamento IDDepartamento
máis máis

Mercadeo

35

equivalencia entre Esquerda Únete y dereito JOINEditar

LEFT JOIN equivalente al dereito Únete anterior

Hay una total de equivalencia entre las That usan sentencias Esquerda Únete y las That usan Únete dereito. Todo lo que se puede hacer con uno se puede hacer con el otro. Cambiando la Perspectiva de Do es la Tabla Izquierda y oído es la Tabla Derecha, y teniendo Coidado con las Condicións, é puede hacer la sentencia equivalente.

Por Ejemplo, hagamos El dereito Únete anterior Pero esta vez usando Esquerda unir. Dereito Únete en el anterior é consideraba Empleado Tabla la la izquierda y la Tabla Departamento de la Derecha. Para hacer un Esquerda Únete equivalente cambiamos de Perspectiva y “volteamos” Las tablas. Consideremos Ahora la Tabla Departamento de la izquierda y la Tabla de la Derecha Empleado. Podemos obtener Exactamente El mismo resultado con la sentencia Siguiente:

 SELECT * FROM departamento LEFT OUTER JOIN empleado ON departamento.IDDepartamento = empleado.IDDepartamento WHERE empleado.IDEmpleado IS NULL

Departamento Empleado
NombreDepartamento IDDepartamento apelido IDDepartamento
Mercadeo

35

máis máis

combinacion completa (Full unión externa) Editar

diagrama de Venn representando Únete El completa, Between las tablas A y B, Sentencia una de SQL

This Operación presenta los resultados de Tabla Tabla Izquierda Derecha y aunque ou tengan correspondencia alguna en la Otra Tabla. La Tabla combinada contendrá, entonces, todo los rexistros de ambas tablas y presentará valores nulos nulos para rexistros que pareja.

En el diagrama de la Derecha, El Area anaranjada represen los empleados That estan Asociados a un departamento, área para Amarilla El de los empleados That estan en ningun ou departamento, y el verde área para los que hai Departamentos Tienen empleados.

Ejemplo de combinación externa:

 SELECT * FROM empleado FULL OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

Steinberg

33

Ingeniería

33

31

Empleado Departamento
apelido IDDepartamento NombreDepartamento IDDepartamento
Zolano

34

producción

34

Jordan

33

Ingeniería

33

Robinson

34

producción

34

Gaspar

36

máis máis
Andrade

31

Ventas

máis máis

Mercadeo

35

Como se puede notar, en este caso se encuentra el empleado Gaspar con valor nulo en su Área correspondiente, y se muestra ademas El Departamento de Mercadeo con valor nulo nos empleados de ESA Área.

Algunos Sistemas de bases de datos ou soportan This funcinalidad, Pero This puede ser emulada a través de las combinaciones da Táboa Izquierda, Táboa Derecha y de la sentencia de Unión Unión.

o mismo Ejemplo puede expresarse Así:

 SELECT * FROM empleado LEFT JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento UNION SELECT * FROM empleado RIGHT JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

completa excluyendo la intersecciónEditar

diagrama de Venn representando Únete El completa, Entre Las tablas A y B, agregando Condicións Donde la clave do la de B para nulas

Ela é quieren Amosar Los de solo rexistros de Las tablas That ou tengan correspondencia en la Otra, é pueden agregar las Condicións adecuadas en la cláusula Where.

En el diagrama de la Derecha, Amarilla El Area Representa los empleados That ou estan asignados a ningun departamento, mientras que el zona verde represen los Departamentos que no empleados Tienen.

 SELECT * FROM empleado FULL OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento WHERE (empleado.IDDepartamento IS NULL) OR (departamento.IDDepartamento is NULL)

Empleado Departamento
apelido IDDepartamento NombreDepartamento IDDepartamento
Gaspar

36

máis máis
máis máis

Mercadeo

35

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *