Diferencia entre la unión derecha y la unión izquierda

Reenviado desde https://www.cnblogs.com/assasion/p/7768931.html

Con respecto a la diferencia entre la combinación interna y la combinación izquierda, pensé que la había entendido antes. Hoy, cuando tomé los parámetros del front-end, descubrí que no era el resultado esperado, así que me di cuenta de que el problema radica en la combinación interna. .

El requisito es verificar los datos de la base de datos y mostrarlos en forma de un gráfico de columnas en la parte frontal. Los datos encontrados se agrupan por industria, mostrando el número de hogares y la proporción de hogares en cada industria. Los campos involucrados incluyen el número de usuarios en la tabla A, el número total de usuarios y el nombre de la industria en la tabla B. Originalmente, sin importar si los datos se verifican o no, el nombre de la industria debe mostrarse en el eje X, pero el resultado es que no se muestran datos en el eje X ni en el eje Y. El problema era que estaba usando el método de conexión incorrecto.

1. La diferencia entre la combinación izquierda, la combinación derecha y la combinación interna de sql

combinación izquierda (unión izquierda) devuelve registros que incluyen todos los registros de la tabla de la izquierda y los registros con los mismos campos de combinación en la tabla de la derecha combinación derecha (
  unión derecha) devuelve registros que incluyen todos los registros de la tabla de la derecha y los campos de combinación de la tabla de la izquierda con registros iguales
  unión interna (etc. Unión por valor) devuelve solo filas donde los campos unidos en las dos tablas son iguales

Los ejemplos son los siguientes:

La tabla A se registra de la siguiente manera:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115

La tabla B se registra de la siguiente manera:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408


1. La
instrucción SQL de combinación izquierda es la siguiente:
select * from A
combinación izquierda B
en A.aID = B.bID

El resultado es el siguiente:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULO NULO

(El número de filas afectadas es 5 filas)
El resultado muestra:
la combinación izquierda se basa en los registros de la tabla A, A puede considerarse la tabla izquierda, B puede considerarse la tabla derecha y la combinación izquierda se basa en la tabla de la izquierda
, es decir, se mostrarán todos los registros de la tabla de la izquierda (A), mientras que en la tabla de la derecha (B) solo se mostrarán los registros que cumplan con los criterios de búsqueda (en el ejemplo: A.aID = B .bID) La falta de registros en la tabla
B son todos NULL.

2. La
declaración SQL de combinación derecha es la siguiente:
select * from A
combinación derecha B
en A.aID = B.bID

El resultado es el siguiente:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006 0 32408

(El número de filas afectadas es de 5 filas)
Descripción del resultado:
si observa detenidamente, encontrará que el resultado de la combinación izquierda es todo lo contrario. Esta vez se basa en la tabla derecha (B) y las partes insuficientes de Una tabla se llena con NULL.

3. La instrucción SQL de unión interna
es la siguiente:
seleccione * de A
unión interna B
en A.aID = B.bID

El resultado es el siguiente:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404

Descripción del resultado:
Obviamente, aquí solo se muestran los registros de A.aID = B.bID, lo que muestra que la unión interna no se basa en quién, solo muestra los registros que cumplen las condiciones.

Supongo que te gusta

Origin blog.csdn.net/LIARRR/article/details/89442396
Recomendado
Clasificación