Boa noite! Alguém tem alguma dica para facilitar o "JOIN" no PostGre SQL ? Tenho muita dificuldade em usá-lo para fazer relatórios. Obrigado!!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa noite! Alguém tem alguma dica para facilitar o "JOIN" no PostGre SQL ? Tenho muita dificuldade em usá-lo para fazer relatórios. Obrigado!!
Olá Pablo, tudo bem?
A maneira mais pratica para fazer a utilização de JOIN é verificar a integridade entre as tabelas, as chaves primárias e estrangeiras. Utilize sempre os campos de referencia entre tabelas.
Exemplo prático:
A relação entre as duas nesse caso será o campo ID_PESSOAS, que por boa pratica deve estar em um relacionamento de chave estrangeira, sendo o ENDERECO_PESSOA dependente da tabela PESSOAS.
1 - Em uma situação hipotética, devemos buscar as pessoas e o logradouro, porem apenas as pessoas que possuem endereços. logo o comando seria:
SELECT PESSOAS.NOME,
ENDERECO_PESSOA.LOGRADOURO
FROM PESSOAS
JOIN ENDERECO_PESSOA
USING (id_pessoas)Ou
SELECT PESSOAS.NOME,
ENDERECO_PESSOA.LOGRADOURO
FROM PESSOAS
JOIN ENDERECO_PESSOA
ON PESSOAS.ID_PESSOA = ENDERECO_PESSOA.ID_PESSOA2 - Em outra situação, devemos buscar todas as pessoas e o logradouro, independente se possui ou não endereço. Logo o comando seria:
SELECT PESSOAS.NOME,
ENDERECO_PESSOA.LOGRADOURO
FROM PESSOAS
JOIN ENDERECO_PESSOA
USING (id_pessoas)Ou
SELECT PESSOAS.NOME,
ENDERECO_PESSOA.LOGRADOURO
FROM PESSOAS
LEFT JOIN ENDERECO_PESSOA
ON PESSOAS.ID_PESSOA = ENDERECO_PESSOA.ID_PESSOANo primeiro caso, utilizamos o comando** JOIN** para juntar as informações, no segundo usamos o LEFT JOIN, para juntar as tabelas independente da condição.
Vou praticar mais! Obrigado pelas dicas, ajudou muito!