Latest web development tutorials

SQLite se une

SQLite seune a la cláusula de combinar dos o más tablas en los registros de la base.JOIN es un valor común mediante la combinación de dos campos en los medios de mesa.

SQL define tres tipos principales de conexiones:

  • Elemento de interconexión - CROSS JOIN

  • En - INNER JOIN

  • Conexión externa - Combinación externa

Antes de continuar, vamos a suponer que hay dos mesas EMPRESA y DEPARTAMENTO. Hemos visto acostumbrados a llenar Declaración de la empresa Insertar tabla. Ahora supongamos registros de la tabla EMPRESA se indican a continuación:

ID NOMBRE EDAD DIRECCIÓN SALARIO
---------- ---------- ---------- ---------- ----------
1 Pablo California 32 20000.0
2 Allen Tejas 25 15000.0
3 Teddy 23 20000.0 Noruega
4 Marcos 25 Rich Mond-65000.0
5 David de Texas 27 85000.0
Kim 6 22 Sur-Hall 45.000,0
7 James Houston 24 10000.0

Otra mesa es el departamento, se define como sigue:

CREAR TABLA DEPARTAMENTO (
   ID INT PRIMARY KEY NOT NULL,
   DEPARTAMENTO CHAR (50) NOT NULL,
   EMP_ID INT NOT NULL
);

La siguiente es una tabla DEPARTMENT instrucción INSERT lleno:

INSERT INTO DEPARTAMENTO (ID, DTO, EMP_ID)
VALUES (1, 'Forma de pago TI', 1);

INSERT INTO DEPARTAMENTO (ID, DTO, EMP_ID)
VALUES (2, 'Ingeniería', 2);

INSERT INTO DEPARTAMENTO (ID, DTO, EMP_ID)
VALUES (3, 'Finanzas', 7);

Por último, tenemos la siguiente lista de registros de la tabla DEPARTAMENTO:

Identificación DEPT EMP_ID
---------- ---------- ----------
1 1 facturación
INGENIERÍA 2 2
3 7 Finanzas

Elemento de interconexión - CROSS JOIN

De conexión cruzada (CROSS JOIN) de cada fila de la primera tabla con cada fila de la segunda tabla para que coincida. Si tanto la tabla de entrada de columnas x e y, respectivamente, la tabla de resultados tiene x + y columnas. Dado que la conexión cruzada (CROSS JOIN) puede producir una tabla muy grande, debe tener cuidado al usarlos sólo cuando sea necesario.

Aquí es la sintaxis de conexión cruzada (CROSS JOIN) de:

SELECT ... FROM tabla1 CROSS JOIN tabla2 ...

Sobre la base de la tabla anterior, podemos escribir una conexión cruzada (CROSS JOIN), de la siguiente manera:

sqlite> EMP_ID SELECT, NOMBRE, DEPARTAMENTO DE EMPRESA DEPARTAMENTO DE CROSS JOIN;

La consulta anterior producirá los siguientes resultados:

EMP_ID NOMBRE DEPT
---------- ---------- ----------
Facturación 1 Pablo TI
2 Pablo INGENIERÍA
7 Pablo Finanzas
Facturación 1 Allen TI
2 INGENIERÍA Allen
7 Allen Finanzas
Facturación 1 Teddy TI
2 Teddy INGENIERÍA
7 peluche Finanzas
Facturación 1 marcarlo
2 Marcos INGENIERÍA
7 Marca Finanzas
Facturación 1 David TI
2 David INGENIERÍA
7 David Finanzas
Facturación 1 Kim TI
2 Kim INGENIERÍA
7 Kim Finanzas
Facturación 1 James TI
2 James INGENIERÍA
7 James Finanzas

En - INNER JOIN

conexión interna (INNER JOIN) para crear una nueva tabla de resultados se combinan dos tablas (Tabla 1 y Tabla2) se unen a los valores de columna de predicado. Las consultas serán tabla1 y tabla2 en cada fila en cada fila se encuentra en comparación con todas las filas que satisfacen el predicado pares coincidentes de unión. Una vez satisfecho unirse a los valores de columna de predicado A y B cada fila coincidente del resultado se fusionarán en una sola fila.

conexión interna (INNER JOIN) es el tipo más común de conexión es el tipo de conexión predeterminado. INTERIOR palabra clave es opcional.

A continuación se muestra la sintaxis de una combinación interna (INNER JOIN) de:

SELECT ... FROM tabla1 [INTERIOR] JOIN tabla2 EN conditional_expression ...

Con el fin de evitar la redundancia y mantener la redacción definitiva, se puede utilizar la instrucción en la conexiónde expresión utilizando(INNER JOIN) condiciones. Esta expresión especifica una lista de una o más columnas:

SELECT ... FROM tabla1 tabla2 JOIN USING (columna 1, ...) ...

conexión natural (NATURAL JOIN) es similar aJOIN ... USANDO, pero será igual valor entre el valor de las dos tablas en cada columna probar automáticamente la presencia de:

SELECT ... FROM tabla1 tabla2 reunión natural ...

Sobre la base de la tabla anterior, podemos escribir una combinación interna (INNER JOIN), de la siguiente manera:

sqlite> EMP_ID SELECT, NOMBRE, DEPARTAMENTO DE EMPRESA INNER JOIN DEPARTAMENTO
        EN COMPANY.ID = DEPARTMENT.EMP_ID;

La consulta anterior producirá los siguientes resultados:

EMP_ID NOMBRE DEPT
---------- ---------- ----------
Facturación 1 Pablo TI
2 INGENIERÍA Allen
7 James Finanzas

Conexión externa - Combinación externa

Conexión externa (outer join) es una combinación interna (INNER JOIN) extensiones. Aunque SQL estándar define tres tipos de combinaciones externas: izquierda, derecha, lleno, pero SQLite sólo admitela izquierda combinación externa (LEFT OUTER JOIN).

Conexión externa (OUTER JOIN) declaró condiciones y el método de conexión interna (INNER JOIN) son los mismos, el uso de, usando la palabra clave o expresión NATURAL. tabla de resultados iniciales se calcula de la misma manera. Una vez que los cálculos se han completado conexión principal, las conexiones externas (combinación externa) de una o dos mesas no están conectados a ninguna línea en la combinación, combinación externa columna con un valor NULL, adjuntarlas a la tabla de resultados.

Aquí es la sintaxis de una combinación externa izquierda (LEFT OUTER JOIN) de:

SELECT ... FROM tabla1 LEFT OUTER JOIN tabla2 EN conditional_expression ...

Con el fin de evitar la redundancia y mantener la redacción definitiva, se pueden utilizar las expresionesusing combinaciones externas (combinación externa) Condiciones.Esta expresión especifica una lista de una o más columnas:

SELECT ... FROM tabla1 tabla2 combinación externa izquierda USAR (columna 1, ...) ...

Sobre la base de la tabla anterior, podemos escribir una conexión externa (OUTER JOIN), de la siguiente manera:

sqlite> EMP_ID SELECT, NOMBRE, DEPARTAMENTO DE EMPRESA LEFT OUTER JOIN DEPARTAMENTO
        EN COMPANY.ID = DEPARTMENT.EMP_ID;

La consulta anterior producirá los siguientes resultados:

EMP_ID NOMBRE DEPT
---------- ---------- ----------
Facturación 1 Pablo TI
2 INGENIERÍA Allen
            Teddy
            marca
            David
            Kim
7 James Finanzas