Articles

SQLite Self-Join

Resumo: neste tutorial, você irá aprender sobre um tipo especial de join chamado SQLite self-join que lhe permite juntar a tabela a si mesmo.

Note que você deve estar familiarizado comINNER JOIN eLEFT JOIN cláusulas antes de avançar com este tutorial.

Introdução à auto-junção SQLite

a auto-junção é um tipo especial de junção que permite que você se junte a uma tabela para si mesmo usando ou LEFT JOIN ou INNER JOIN cláusula. Você usa self-join para criar um conjunto de resultados que junta as linhas com as outras linhas dentro da mesma tabela.

porque você não pode se referir à mesma tabela mais do que uma em uma consulta, você precisa usar um nome alternativo de tabela para atribuir à tabela um nome diferente quando você usa auto-adesão.

a auto-junção compara valores das mesmas colunas ou colunas diferentes na mesma tabela. Apenas uma mesa está envolvida na auto-adesão.

muitas vezes usa a auto-adesão para consultar a relação pais/filhos guardada numa tabela ou para obter os totais em execução.

SQLite self-join examples

we will use the employees table in the sample database for demonstration.

employees tabela armazena não só os dados dos funcionários, mas também com os dados organizacionais. A coluna ReportsTo especifica a relação de reporte entre empregados.

If an employee reports to a manager, the value of theReportsTo column of the employer’s row is equal to the value of theEmployeeId column of the manager’s row. No caso de um empregado não reportar a ninguém, a coluna ReportsToNULL.

para obter a informação sobre quem é o relatório direto de quem, você usa a seguinte declaração:

Tentar

A instrução utilizados o INNER JOIN cláusula join employees para si. A tabelaemployees tem duas funções: empregados e gestores.

como usamos o INNER JOIN cláusula join employees tabela própria, o conjunto de resultados não tem a linha com o gerenciador de coluna contém um NULL valor.

Note that the concatenation operator || concatenates multiple strings into a single string. No exemplo, usamos o operador de concatenação para os nomes completos dos funcionários, concatenando o primeiro nome, espaço e sobrenome.

no caso de querer consultar o CEO que não reporta a ninguém, você precisa mudar a cláusula INNER JOIN cláusula para LEFT JOIN cláusula na consulta acima.

Andrew Adams é o CEO porque ele não comunica a ninguém.

Você pode usar o auto-junte-se a técnica para encontrar os funcionários localizados na mesma cidade, como a consulta a seguir:

Tentar

A condição de associação tem duas expressões:

  • e1.city = e2.city para se certificar de que os funcionários localizado na mesma cidade
  • e.firstname <> e2.firstname AND e1.lastname <> e2.lastname para garantir que e1 e e2 não são o mesmo funcionário, com a suposição de que não haja funcionários que têm o mesmo nome e sobrenome.

neste tutorial, mostramos – lhe como usar a técnica de auto-junção SQLite para juntar uma tabela a si mesma.

  • este tutorial foi útil ?
  • YesNo

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *