Articles

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 que e1 y e2 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *