Unión automática de SQLite
Resumen: en este tutorial, aprenderá sobre un tipo especial de unión llamada unión automática de SQLite que le permite unir una tabla a sí misma.
Tenga en cuenta que debe estar familiarizado con las cláusulas INNER JOIN
y LEFT JOIN
antes de continuar con este tutorial.
Introducción a SQLite auto-join
La auto-join es un tipo especial de combinaciones que le permiten unirse a una tabla a sí mismo utilizando LEFT JOIN
o INNER JOIN
cláusula. Se utiliza la combinación automática para crear un conjunto de resultados que une las filas con las demás filas de la misma tabla.
Dado que no se puede hacer referencia a la misma tabla más de una en una consulta, es necesario utilizar un alias de tabla para asignar a la tabla un nombre diferente cuando se utiliza la unión automática.
La combinación automática compara valores de la misma columna o de columnas diferentes en la misma tabla. Solo una mesa está involucrada en la auto-unión.
A menudo se utiliza la unión automática para consultar la relación padres / hijos almacenada en una tabla o para obtener totales en ejecución.
Ejemplos de unión automática SQLite
Usaremos la tabla employees
en la base de datos de muestra para la demostración.
La tabla employees
almacena no solo datos de empleados, sino también datos de la organización. La columna ReportsTo
especifica la relación de informes entre los empleados.
Si un empleado informa a un gerente, el valor de la columna ReportsTo
de la fila del empleado es igual al valor de la columna EmployeeId
de la fila del gerente. En caso de que un empleado no informe a nadie, la columna ReportsTo
es NULL
.
Para obtener la información sobre quién es el informe directo de quién, utilice la siguiente declaración:
Pruebe
La declaración se utiliza la etiqueta INNER JOIN
cláusula para unirse a la etiqueta employees
a sí mismo. La tabla employees
tiene dos roles: empleados y gerentes.
Debido a que usamos la cláusula INNER JOIN
para unir la tabla employees
, el conjunto de resultados no tiene la fila cuya columna de administrador contiene un valor NULL
.
Tenga en cuenta que el operador de concatenación ||
concatena varias cadenas en una sola cadena. En el ejemplo, usamos el operador de concatenación a partir de los nombres completos de los empleados concatenando el nombre, el espacio y el apellido.
En caso de que desee consultar al CEO que no informa a nadie, debe cambiar la cláusula INNER JOIN
a LEFT JOIN
en la consulta anterior.
Andrew Adams
es el presidente, porque él no informe a nadie.
puede utilizar el auto-técnica de combinación para encontrar a los empleados, que se encuentran en la misma ciudad como la siguiente consulta:
Pruebe
La condición de combinación tiene dos expresiones:
-
e1.city = e2.city
para asegurarse de que ambos empleados ubicados en la misma ciudad -
e.firstname <> e2.firstname AND e1.lastname <> e2.lastname
para asegurarse de quee1
ye2
no sean el mismo empleado con la suposición de que no hay empleados que tengan el mismo nombre y apellido.
En este tutorial, le mostramos cómo usar la técnica de unión automática SQLite para unir una tabla a sí misma.
- ¿Fue útil este tutorial ?
- YesNo