Junto à esquerda PostgreSql

Junto à esquerda PostgreSql
O PostGresql Junção é um recurso que permite combinar colunas de uma tabela com uma ou mais tabelas com base nas colunas comuns entre as tabelas relacionadas. Existem muitos tipos de junções, como junção interna, junção externa, junção cruzada e junta -se. Este artigo definirá a esquerda se unindo a dois tipos:
  • Junho externo esquerdo
  • Esquerda a junção interna

Vamos explicar cada tipo com exemplos específicos.

Sintaxe

Selecione Table_A.COLUMNA, TABLE_A.columnb, tabela_b.Columna
De tabela_a
JONA ​​ESQUERDA TABLE_B
Na tabela_a.Matching_column = tabela_b.matching_column;

Tabela_a implica a primeira tabela e tabela_b implica a segunda tabela. O Matching_column é a coluna que está presente em ambas as tabelas pode ser com diferentes nomes de colunas.

  • A sintaxe mostra que precisamos especificar duas tabelas usando a instrução SELECT.
  • Segundo, mostramos a tabela principal.
  • Terceiro, mencionamos a tabela e a tabela principal formou uma junção com.

Para realizar o entendimento da junta à esquerda, precisamos criar duas tabelas no PostgreSQL. Ambas as tabelas são criadas usando o comando "Criar tabela". A declaração de amostra é dada abaixo. Deixe o nome da tabela "Item":

>> Crie itens de tabela (ID inteiro, nome Varchar (10), categoria varchar (10), order_no inteiro, endereço varchar (10), expire_month varchar (10));

Agora adicione os valores na tabela por "Inserir declaração":

>> Insira nos valores dos itens (1, 'boneca', 'brinquedo', 4, 'endereço');

Ao usar este comando, os valores são inseridos em uma única linha da tabela.

Agora, voltando ao exemplo, temos duas mesas aqui, uma é "itens" e a outra é "ordens". Você pode ver o conteúdo das tabelas usando o comando "Select":

Tabela 1-itens:

TABELA 2 ORDENS:

Exemplo 1:
Considere as duas tabelas. Essas tabelas são criadas de tal maneira que uma coluna forma um link entre essas duas tabelas. Por exemplo, Order_no desempenha o papel de estabelecer o link. O comando a seguir usa a cláusula de uma junção esquerda para ingressar na tabela "itens" com "pedidos":

>> Selecione itens.ID, nome, ordem_id de itens deixados junção pedidos em pedidos.order_id = itens.order_no order pelo nome;

Aqui, obtemos a tabela resultante à medida que selecionamos "id" e "nome" da tabela de itens e order_no da tabela de pedidos, para que essas três colunas sejam exibidas. Quando uma linha da tabela de itens não tem linha correspondente com a tabela de pedidos, os valores da coluna Order_id dessa linha são nulos.

Exemplo 2:
Este exemplo se assemelha ao anterior, mas difere em ter uma cláusula "onde". Isso ajuda a encontrar as ordens que não estão presentes na tabela de pedidos. Isso é realizado usando uma declaração adicional que mostra a coluna vazia comparando os valores com o espaço. Se nenhum valor estiver presente, selecione o ID e o nome. Este exemplo está relacionado à junção externa esquerda. A junção externa esquerda é aquela em que, enquanto obtém o valor resultante após a aplicação de restrições, todos os elementos pertencem a uma única tabela (tabela esquerda). Se um único elemento for correspondido, o resultado estará longe da junção externa esquerda:

>> Selecione itens.id, itens. nome, order_id de itens que deixam pedidos de junção nos pedidos.order_id = itens.order_no onde pedidos. id é nulo ordem por nome;

A imagem mostra que todas as seis linhas na tabela "itens" são diferentes da tabela "pedidos". Ou a tabela de "pedidos" não contém esses valores. É por isso que toda a coluna está vazia.

Exemplo 3:
Este exemplo mostra o link entre duas tabelas diretamente. Como na instrução SELECT, pegamos duas colunas de itens de tabela e uma coluna das ordens da tabela. Mas para esse conceito, precisamos mencionar o nome da coluna com o nome da tabela pelo "Dot-Method", que especifica a coluna de uma tabela específica. Este é um exemplo de junção à esquerda interna, porque algumas partes de ambas as tabelas estão presentes na tabela resultante:

>> Selecione o nome, categoria, pedidos.endereço de itens que deixam pedidos de junção em pedidos.order_id = itens.ordem_no,

Portanto, a tabela resultante será a combinação de colunas de ambas as tabelas. A coluna de endereço conterá apenas o endereço da tabela "Ordens" que corresponde ao endereço da tabela "itens".

Da mesma forma, se mudarmos a declaração "Dot-Method", faz a diferença. Neste exemplo, substituímos “pedidos.endereço ”com a coluna de endereço na tabela de itens“ itens.endereço":

>> Selecione nome, categoria, itens.endereço de itens que deixam pedidos de junção em pedidos.order_id = itens.ordem_no,

Agora, você pode observar que a coluna de endereço tem todas as linhas cheias de dados presentes na tabela "itens".

Exemplo 4:
Mais de duas colunas de cada tabela são selecionadas aqui. Às vezes, precisamos reduzir a redundância para evitar a duplicidade de dados enquanto combina duas tabelas. Isso só pode ser feito usando restrições em mais de uma coluna para recuperar dados precisos e valiosos que são coerentes em ambas as tabelas. Portanto, neste exemplo, queremos exibir o nome, endereço e Order_No que está presente apenas na tabela de itens e não na tabela "ordens":

>> Selecione o nome, ordens_no, order_id, itens.endereço de itens que deixam pedidos de junção em pedidos.order_id = itens.order_no onde os pedidos são nulos;

Para deixar a coluna inteira vazia, aplicamos a restrição de nulo. Neste exemplo, especificamos novamente o endereço com a tabela de itens para permitir a discriminação com a coluna de endereço. Mas no próximo exemplo, substituímos o endereço pelo 'order_day' da tabela "Ordens". Depois de substituir a coluna, o Order_id e o Order_day são colunas vagas na tabela resultante:

>> Selecione o nome, ordens_no, order_id, ordens_day de itens deixados junção de pedidos nos pedidos.order_id = itens.order_no onde os pedidos são nulos;

Mencionamos apenas o order_id ser nulo. Mas por que o "order_day" está vazio?

É um fator óbvio que, se escolhemos apenas aquelas linhas de ordens_, não que não estejam presentes na tabela "ordens", portanto, como poderia ser possível ter esses valores "order_day" cujos Order_id não estão presentes.

Implementação via pgadmin

Para implementar os comandos do lado pgadmin, você precisa fornecer a senha no começo. Agora, navegue até a barra esquerda. Você saberá sobre os bancos de dados no servidor. Expanda o banco de dados do PostGres, pois implementamos nossas consultas aqui. Após a expansão, você receberá os catálogos, incluindo dados da tabela:

Agora, clique com o botão direito do mouse na mesa e selecione a ferramenta de consulta:

Tomamos o mesmo exemplo descrito acima apenas para criar o pgadmin em uso. Escreva a seguinte consulta no Snap e na parte do editor de consulta. Para executar o comando, vá para a barra de ferramentas de navegação mencionada acima. Aqui está o símbolo como o símbolo da brincadeira na música. Selecione isso, e a consulta será executada. É mostrado na saída de dados:

Conclusão

A junção do PostGresql combina colunas de diferentes tabelas com colunas semelhantes. Em particular, a junção esquerda combina a mesa no lado esquerdo. Isso significa que a tabela certa é mencionada primeiro no comando e depois o outro. Todas as condições são aplicadas na junção esquerda, na junção interna ou no caso de junção externa. Esperamos. Confira os outros artigos para obter informações adicionais.