Declaração de junção no SQL

Esta operação não é necessária a partir de um registro em uma tabela para ter um registro relacionado ao registro. O registro é mantido na tabela combinada, embora não haja correspondente na outra tabela.

Existem três tipos de combinações externas, a junção esquerda, a junção direita e a junção completa, onde todos os registros são tirados Da mesa à esquerda, ou toda a tabela direita, ou todos os registros respectivamente.

deixou junineditar

Diagrama de Venn representando a entrada esquerda, entre as tabelas A e B, de uma instrução SQL

O resultado desta operação contém sempre todos os registros na tabela à esquerda (a primeira tabela mencionada na consulta), independentemente de haver um registro correspondente na tabela à direita.

A parte de junção esquerda declaração retorna o par de todos os valores da tabela esquerda com os valores da tabela correta correspondente, se houver ou retornar um valor nulo nulo nos campos do TA Blah direita quando não há correspondência.

Ao contrário do resultado apresentado nos exemplos de combinação interna em que o funcionário não foi mostrado cujo departamento não existia, no exemplo a seguir, os funcionários com seu respectivo departamento serão apresentados, e, além disso, um funcionário cujo departamento não existe. / p>

O funcionário que não tem apartamento está localizado na área amarela do diagrama à direita, enquanto funcionários com departamento estão na área laranja, na interseção de A e B.

Exemplo de junção esquerda para a combinação externa:

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


funcionário departamento
sobrenome iddepartment nome iddepartment
33 33 33
andrade 31 31
rólon 34 produção 34
zolano 34 34
gaspar 36 null td null
steinberg 33 engenharia 33

Left Letin excluindo a interseção

Diagrama de Venn representando a junção esquerda, entre as tabelas A e B, adicionando uma condição onde as teclas B são null

Se você quiser mostrar apenas os registros da primeira tabela que não têm correspondente no segundo, você pode adicionar a condição n adequado na cláusula WHERE. Isso nos dará funcionários que não são atribuídos a qualquer departamento, que no diagrama à direita são representados em amarelo.

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

Id = “a1285fb6d6”>
empregado departamento sobrenome iddepartment nome iddepartment gaspar 36 null null

junção externa direita ou junineditar direito

Diagrama de Venn representando a junção direita, entre as tabelas A e B, de uma instrução SQL

Esta operação é uma imagem refletida do anterior; O resultado desta operação contém sempre todos os registros na tabela à direita (a segunda tabela mencionada na consulta), independentemente de existir ou não um registro correspondente na tabela à esquerda. o SENTENÇA EXTERIOR DO EXTERIOR Retorna todos os valores da tabela certa com os valores da tabela esquerda correspondente, se houver ou retornar um valor nulo nulo nos campos na tabela esquerda quando não há correspondência.

No diagrama à direita, os departamentos que não têm funcionários estão na área verde, enquanto os departamentos de funcionários estão na área laranja, na interseção de A e B.

Ejemplo de direito Junte para la combinación externa:

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

Empleado Departamento
Apellido 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

mais mais

catálogo Cadeo

35

En Este Caso el Área de Mercadeo fue presentada en los resultados, aunque intensa ou Hay empleados registrados en dicha área.

Right Junte excluyendo la intersecciónEditar

Diagrama de Venn REPRESENTANDO el direita juntam-se, Entre Las Tablas a y B, agregando una condicion Donde las claves de para nulas

Si se quieren Mostrar los Registros 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 ningún 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 conteúdo >
Apellido IDDepartamento NombreDepartamento IDDepartamento
mais mais

Mercadeo

35

equivalencia Entre Esquerda Junte-y direito JOINEditar

LEFT JOIN equivalente al direito Junte anterior

Hay una total de equivalencia entre las that usan sentencias Esquerda Junte-y las that usan Junte-direito. Todo lo que se puede hacer con uno se puede hacer con el otro. Cambiando la Perspectiva de Do es la Tabla izquierda y ouvido es la Tabla derecha, y teniendo Cuidado con las condiciones, é Puede hacer la sentencia equivalente.

Por ejemplo, hagamos el direito Junte anterior pero esta vez usando Esquerda Junte-se. Direito Junte-en el anterior é consideraba Empleado Tabla la la izquierda y la Tabla Departamento de la derecha. Para hacer un Esquerda Junte 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 Apellido IDDepartamento
Mercadeo

35

mais mais

combinacion completa (Full junção externa) Editar

Diagrama de Venn REPRESENTANDO Junte-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, todos los registros de Ambas tablas y presentará Valores nulos nulos Pará Registros que pareja.

En el diagrama de la derecha, el Area anaranjada represen los empleados that están asociados a un departamento, área para amarilla el de los empleados that están en ningún ou departamento, y el verde área para Los que há Departamentos Tienen empleados.

Ejemplo de combinación externa completa:

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

Steinberg

33

Ingeniería

33

31

Empleado Departamento conteúdo >
Apellido IDDepartamento NombreDepartamento IDDepartamento
Zolano

34

PRODUCCIÓN

34

Jordan

33

Ingeniería

33

Robinson

34

PRODUCCIÓN

34

Gaspar

36

mais mais
Andrade

31

Ventas

mais mais

Mercadeo

35

Como se puede notar, en Este Caso se encuentra el empleado Gaspar con valor nulo en su Área correspondiente, y se muestra además el departamento de Mercadeo con valor nulo en los empleados de ESA Área.

Algunos Sistemas de bases de Dados ou soportan This funcinalidad, pero This puede ser emulada a traves de las combinaciones da Tabela izquierda, Tabela derecha y de la sentencia de União União.

El 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 Junte-el completa, Entre Las Tablas A y B, agregando condiciones Donde la clave do la de B para nulas

E Ela é quieren Mostrar Los de solo registros de Las Tablas that ou tengan correspondencia en la Otra, é pueden agregar las condiciones adecuadas en la cláusula Where.

En el diagrama de la derecha, amarilla el Area Representa los empleados that ou están asignados para ningún departamento, mientras que el Area 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
Apellido IDDepartamento NombreDepartamento IDDepartamento
Gaspar

36

mais mais
mais mais

Mercadeo

35

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *