Istruzione Iscriviti in SQL

Questa operazione non è richiesta da un record in una tabella per avere un record record. Il record viene mantenuto nella tabella combinata sebbene non vi sia corrispondente nell’altra tabella.

Esistono tre tipi di combinazioni esterne, il join sinistro, il giusto join e il full join, dove vengono presi tutti i record Dalla tabella a sinistra o tutta la tabella destra o tutti i record o tutti i record rispettivamente.

Jodeditar di sinistra

Diagramma di Venn che rappresenta il join sinistro, tra le tabelle A e B, di un’istruzione SQL

Il risultato di questa operazione contiene sempre tutti i record nella tabella a sinistra (la prima tabella menzionata nella query), indipendentemente dal fatto che vi sia un record corrispondente nella tabella a destra.

il join a sinistra dichiarazione restituisce la coppia di tutti i valori della tabella sinistra con i valori della tabella destra corrispondente, se ci sono o restituire un valore null nullo nei campi del ta Blah giusto quando non c’è corrispondenza.

A differenza del risultato presentato negli esempi di combinazione interna in cui il dipendente non è stato dimostrato il cui dipartimento non esisteva, nel seguente esempio, saranno presentati dipendenti con il loro rispettivo reparto, e inoltre un dipendente il cui dipartimento non esiste.

Il dipendente che non ha un appartamento si trova nella zona gialla del diagramma sulla destra, mentre i dipendenti con dipartimento sono nella zona arancione, all’incrocio di A e B.

Esempio del join sinistro per la combinazione esterna:

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

TR>

dipendente Dipartimento
Cognome IDDEpartment Nome IDDEpartment
33 33 33 33
Andrade 31 31 vendite 31
róbinson 34 Produzione 34
zolano 34 34
GASPAR 36 36 NULL null
steinberg 33 Ingegneria 33

Sinistra Iscriviti escludendo l’intersezione

Diagramma di Venn che rappresenta il join sinistro, tra le tabelle A e B, aggiungendo una condizione in cui i tasti B sono nulli

Se si desidera visualizzare solo i record della prima tabella che non hanno corrispondenti nel secondo, è possibile aggiungere la condizione n Adeguato nella clausola WHERE. Questo ci darà impiegati che non sono assegnati a nessun reparto, che nel diagramma a destra sono rappresentati in giallo.

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

null

Dipendente Dipartimento
Cognome IDDEpartment Nome IDDEpartment
GASPAR 36 null

Jorsi esterni destro o jodeditar destro

Diagramma di Venn che rappresenta il giusto join, tra le tabelle A e B, di un’istruzione SQL

Questa operazione è un’immagine riflessa di quella precedente; Il risultato di questa operazione contiene sempre tutti i record nella tabella a destra (la seconda tabella menzionata nella query), indipendentemente dal fatto che esista o meno o meno un record corrispondente nella tabella a sinistra. Il Frase a destra Outer Join Restituisce tutti i valori della tabella destra con i valori della tabella sinistra corrispondente, se presente, o restituire un valore null null nei campi nella tabella sinistra quando non c’è alcuna corrispondenza.

Nel diagramma a destra, i dipartimenti che non hanno dipendenti sono nell’area verde mentre i dipartimenti dei dipendenti sono nella zona arancione, all’incrocio di A e B.

Ejemplo del diritto Join 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

sopra sopra

catalogo Cadeo

35

En Este Caso el Area di Mercadeo fue presentada en los resultados, aunque intenso o Hay empleados registrados en dicha Area.

destro Registrati excluyendo la intersecciónEditar

Diagrama di Venn representando el Destra registrazione, entre Las Tablas a y B, agregando UNA condicion Donde las claves de per nulas

si se quieren Visualizza los registros solista Tabla de la Departamento de que tengan o correspondientes en la Tabla di Empleado, è Puede agregar la adecuada condición en la clausula Dove. Nos secondo esto que los departamentos o Tengan asignados ningún empleado. En el Diagrama de la derecha, esto se representa en verde.

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

Empleado Departamento
Apellido IDDepartamento NombreDepartamento IDDepartamento
sopra sopra

Mercadeo

35

equivalencia entre LEFT JOIN y Destra JOINEditar

LEFT JOIN Equivalente al destro registrazione anteriore

Hay una totale equivalencia entre las que usan sentencias LEFT JOIN y las que usan Partecipa destro. Todo lo que se puede hacer con Uno se puede hacer con el otro. Cambiando la prospettiva di Do es la Tabla izquierda y sentito es la Tabla derecha, y teniendo cuidado con las condiciones, è Puede hacer la sentencia Equivalente.

Por ejemplo, hagamos el destro Registrati anteriore pero Esta vez usando Sinistra Aderire. Proprio Partecipa en el anteriore è consideraba Empleado Tabla la la izquierda y la Tabla Departamento de la derecha. Para hacer un LEFT JOIN Equivalente cambiamos di perspectiva y “volteamos” Las Tablas. Consideremos Ahora la Tabella Departamento de la izquierda y la Tabella 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

sopra sopra

Combinación completa (full outer join) Editar

Diagrama di Venn representando el completa registrazione, entre Las Tablas A y B, sentencia Una di SQL

Esta Operación Presenta los resultados de Tabla izquierda y aunque derecha o Tengan correspondencia alguna en l’Otra Tabla. La Tabla combinada contendrá, entonces, TODOS LOS registros de Ambas tablas y presentará valores nulos NULLS para registros che Pareja.

En el Diagrama de la derecha, el Area anaranjada representa los empleados que están Asociados un un Departamento, Area per Amarilla el los Empleados que están en ningún o Departamento, y el Area per los Verde que no Departamentos Tienen empleados.

Ejemplo di combinación externa completa:

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

Steinberg

33

Ingeniería

33

31

Empleado Departamento
Apellido IDDepartamento NombreDepartamento IDDepartamento
Zolano

34

PRODUCCIÓN

34

Jordan

33

Ingeniería

33

Robinson

34

PRODUCCIÓN

34

Gaspar

36

sopra sopra
Andrade

31

Ventas

sopra sopra

Mercadeo

35

Como se puede Notar, en Este Caso se encuentra el empleado Gaspar con valor nulo en su Area correspondiente, y se muestra además el departamento di MERCADEO con valor nulo en los empleados dell’ESA Area.

Algunos Sistemas de basi de datos o soportan Esta funcionalidad, pero Esta Puede ser emulada attraverso de las combinaciones di Tabla izquierda, Tabla derecha y de la sentencia di Union.

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 registrazione excluyendo la intersecciónEditar

Diagrama di Venn representando el completa registrazione, entre Las Tablas A y B, agregando condiciones Donde La clave de O La di B per nulas

E Lei è quieren Visualizza solista los registros de Las Tablas que o Tengan correspondencia en l’Otra, è pueden agregar las condiciones adecuadas en la clausula Dove.

En el Diagrama de la derecha, el Area amarilla representa los empleados que o están asignados a ningún Departamento, Mientras que el Area verde representa 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

sopra sopra
sopra sopra

Mercadeo

35

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *