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!!
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_PESSOA
2 - 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_PESSOA
No 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!