SQLite junta
SQLite éjunta cláusula de combinar duas ou mais tabelas nos registros do banco de dados.JOIN é um valor comum através da combinação de dois campos nos meios de mesa.
SQL define três principais tipos de conexões:
Cross-connect - CROSS JOIN
En - INNER JOIN
conexão externa - OUTER JOIN
Antes de continuarmos, vamos supor que existem duas tabelas COMPANY e departamento. Nós vimos usado para preencher COMPANY declaração tabela INSERT. Agora vamos supor registros da tabela de empresa listada abaixo:
ID NOME SALÁRIO IDADE ENDEREÇO ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20.000,0 2 Allen 25 Texas 15.000,0 3 Teddy 23 Norway 20.000,0 4 Mark 25 Rich-Mond 65.000,0 5 David 27 Texas 85.000,0 6 Kim 22 Sul-Hall 45.000,0 7 James 24 Houston 10000.0
Outra mesa é o departamento, é definido da seguinte forma:
CRIAR DEPARTAMENTO TABLE ( ID INT PRIMARY KEY NOT NULL, DEPT CHAR (50) NOT NULL, EMP_ID INT NOT NULL );
O seguinte é uma tabela DEPARTMENT instrução INSERT preenchido:
INSERT INTO DEPARTAMENTO (ID, DEPT, EMP_ID) VALUES (1, 'IT faturamento ", 1); INSERT INTO DEPARTAMENTO (ID, DEPT, EMP_ID) VALUES (2, 'Engenharia', 2); INSERT INTO DEPARTAMENTO (ID, DEPT, EMP_ID) VALUES (3, 'Finanças', 7);
Finalmente, temos a seguinte lista de registros na tabela DEPARTMENT:
ID DEPT EMP_ID ---------- ---------- ---------- 1 Billing 1 2 Engineerin 2 3 Finanças 7
Cross-connect - CROSS JOIN
Cross-connect (CROSS JOIN) cada linha da primeira tabela com cada linha da segunda tabela para corresponder. Se ambas as colunas da tabela de entrada de x e y, respectivamente, a tabela resultante tem x + y colunas. Uma vez que o cross-connect (CROSS JOIN) pode produzir uma tabela muito grande, você deve ter cuidado ao usá-los apenas quando apropriado.
Aqui está a sintaxe para cross-connect (CROSS JOIN) de:
SELECT ... FROM CROSS table1 Cadastre table2 ...
Com base na tabela acima, podemos escrever uma cross-connect (CROSS JOIN), como segue:
sqlite> EMP_ID SELECT, NOME, DEPARTAMENTO DE EMPRESA CROSS JOIN departamento;
A consulta acima irá produzir os seguintes resultados:
EMP_ID NOME DEPT ---------- ---------- ---------- Faturamento 1 Paul TI 2 Paul Engineerin 7 Paulo Finanças Faturamento 1 Allen TI 2 Allen Engineerin 7 Allen Finanças Faturamento 1 Teddy TI 2 Teddy Engineerin 7 Teddy Finanças Faturamento 1 Mark TI 2 Mark Engineerin 7 Mark Finanças Faturamento 1 David TI 2 David Engineerin 7 David Finanças Faturamento 1 Kim TI 2 Kim Engineerin 7 Kim Finanças Faturamento 1 James TI 2 James Engineerin 7 James Finanças
En - INNER JOIN
conexão interna (INNER JOIN) para criar uma nova tabela de resultados combinar duas tabelas (tabela1 e tabela2) Participe valores da coluna de predicados. Consultas vai tabela1 e tabela2 em cada linha em cada linha são comparados para encontrar todas as linhas que satisfazem o predicado pares correspondentes participar. Quando estiver satisfeito juntar-se valores de colunas de predicados A e B cada linha correspondente do resultado serão fundidos em uma linha.
conexão interna (INNER JOIN) é o tipo mais comum de conexão é o tipo de conexão padrão. palavra-chave INNER é opcional.
Aqui está a sintaxe para uma junção interna (INNER JOIN) de:
SELECT ... FROM table1 [INNER] JOIN table2 ON conditional_expression ...
A fim de evitar a redundância e manter o texto curto, você pode usar a instrução na conexão expressãoUSANDO (INNER JOIN) condições.Esta expressão especifica de uma lista de uma ou mais colunas:
SELECT ... FROM table1 Cadastre table2 USANDO (column1, ...) ...
ligação natural (junção natural) é semelhante aoADERIR QUE USA ..., mas será igual valor entre o valor das duas tabelas em cada coluna testar automaticamente a presença de:
SELECT ... FROM table1 table2 junção natural ...
Com base na tabela acima, pode-se escrever uma junção interna (INNER JOIN), como se segue:
sqlite> EMP_ID SELECT, NOME, DEPARTAMENTO DE EMPRESA INNER JOIN DEPARTAMENTOS ON COMPANY.ID = DEPARTMENT.EMP_ID;
A consulta acima irá produzir os seguintes resultados:
EMP_ID NOME DEPT ---------- ---------- ---------- Faturamento 1 Paul TI 2 Allen Engineerin 7 James Finanças
conexão externa - OUTER JOIN
conexão externa (OUTER JOIN) é uma junção interna (INNER JOIN) extensões. Embora padrão SQL define três tipos de associações externas: esquerda, direita, completo, mas SQLite só suportaLEFT JOIN exterior (LEFT OUTER JOIN).
conexão externa (OUTER JOIN) declarou condições e método de conexão interna (INNER JOIN) são as mesmas, o uso de ON, usando a palavra chave NATURAL ou expressão. Os resultados iniciais tabela é calculado da mesma maneira. Uma vez que os cálculos sejam concluídas conexão primária, as conexões externas (OUTER JOIN) de uma ou duas mesas não estão ligados a qualquer linha na fusão, associação externa coluna com um valor NULL, anexá-los à tabela de resultados.
Aqui está a sintaxe para uma junção externa esquerda (LEFT OUTER JOIN) de:
SELECT ... FROM table1 LEFT OUTER JOIN table2 ON conditional_expression ...
A fim de evitar a redundância e manter o texto curto, você pode usar as expressõesusando instrução junta externa (outer join) Condições.Esta expressão especifica de uma lista de uma ou mais colunas:
SELECT ... FROM table1 LEFT OUTER JOIN tabela2 USANDO (column1, ...) ...
Com base na tabela acima, pode-se escrever uma ligação externa (OUTER JOIN), como se segue:
sqlite> EMP_ID SELECT, NOME, DEPARTAMENTO DE EMPRESA LEFT OUTER JOIN DEPARTAMENTOS ON COMPANY.ID = DEPARTMENT.EMP_ID;
A consulta acima irá produzir os seguintes resultados:
EMP_ID NOME DEPT ---------- ---------- ---------- Faturamento 1 Paul TI 2 Allen Engineerin Teddy marca David Kim 7 James Finanças