AND ou LEFT JOIN

13/12/2018

0

Fala galera!
Qual seria o mais recomendado AND ou LEFT JOIN?
Existe uma diferença quanto a desempenho entre eles?
Qual seria o mais correto?
Mateus Soares

Mateus Soares

Responder

Post mais votado

13/12/2018

Me parece que o Mateus está perguntando acerca da associação. Eu particularmente, para associar as colunas de uma tabela, prefiro fazer o uso da instrução JOIN. Isso o faço por alguns motivos:

1 - Por padrão, o JOIN parece ser mais usado que o AND (que é mais usado para agregar condições após o WHERE do que para associar tabelas).

2 - Na hora de identificar na query onde está a associação entre as tabelas, fica muito mais claro perceber a associação quando o JOIN é usado. Com o uso do AND você vai precisar identificar o que é associação e o que é adição de condições.

3 - Se eu precisar fazer um RIGHT JOIN, como poderei fazer isso usando AND para associação entre as tabelas?

4 - O JOIN serve exatamente para a finalidade de associar as tabelas. Acho que o AND pode é melhor usado para adicionar condições a cláusula WHERE.

Bom, isso é minha opinião, é claro que podem haver opiniões diferentes da minha.

Calebe Menezes

Calebe Menezes
Responder

Mais Posts

13/12/2018

Alex Lekao

Oi Mateus, boa tarde!!!

Left join eh para fazer junções em tabelas com campos semelhantes que possibilitem essa junção.

O and(isso não ficou bem especifico na sua solicitação.) vc utiliza no where para fazer os tratamentos de logicas para trazer ou não os resultados.

Não vejo similaridades na utilização deles.

Vc poderia detalhar um pouco mais o que precisa?

Atenciosamente,
Responder

13/12/2018

Mateus Soares

Oi Mateus, boa tarde!!!

Left join eh para fazer junções em tabelas com campos semelhantes que possibilitem essa junção.

O and(isso não ficou bem especifico na sua solicitação.) vc utiliza no where para fazer os tratamentos de logicas para trazer ou não os resultados.

Não vejo similaridades na utilização deles.

Vc poderia detalhar um pouco mais o que precisa?

Atenciosamente,


SELECT u.nome, u.idade, e.rua, e.numero
FROM users u, endereco e
WHERE u.id = e.user_id


Normalmente utilizo o AND para juntar tabelas e não o LEFT JOIN
Responder

15/12/2018

Alex Lekao

Oi Mateus, boa tarde!!!

Left join eh para fazer junções em tabelas com campos semelhantes que possibilitem essa junção.

O and(isso não ficou bem especifico na sua solicitação.) vc utiliza no where para fazer os tratamentos de logicas para trazer ou não os resultados.

Não vejo similaridades na utilização deles.

Vc poderia detalhar um pouco mais o que precisa?

Atenciosamente,


SELECT u.nome, u.idade, e.rua, e.numero
FROM users u, endereco e
WHERE u.id = e.user_id


Normalmente utilizo o AND para juntar tabelas e não o LEFT JOIN


Oi Mateus, como Calebe informou, as finalidade são bem distintas, explicou basicamente a mesma coisa só que mais detalhada e com melhor didática, acredito eu.

Join eh junção, para se fazer as chamadas intersecções aquilo que aprendíamos em matemática no ginásio, contido e não contido e tal.

O and eh para tratamento de logica, por isso utilizando no where.

Alem do código ficar mais limpo e claro, como o Calebe informou, para alguém que leia seu código ficara melhor de entender.

Acredito que raramente haveriam diferenças de performance nos bancos quando vc faz associações listando as tabelas no from ou em joins(junções), particularmente acho que com join eh mais performático, mas isso eh questão para plano de execução.

Pode-se levar em consideração uma boa pratica tbm e por ai vai.

Eu uso sempre junções(join)

Atenciosamente,
Responder

04/01/2019

Mateus Soares

Oi Mateus, boa tarde!!!

Left join eh para fazer junções em tabelas com campos semelhantes que possibilitem essa junção.

O and(isso não ficou bem especifico na sua solicitação.) vc utiliza no where para fazer os tratamentos de logicas para trazer ou não os resultados.

Não vejo similaridades na utilização deles.

Vc poderia detalhar um pouco mais o que precisa?

Atenciosamente,


SELECT u.nome, u.idade, e.rua, e.numero
FROM users u, endereco e
WHERE u.id = e.user_id


Normalmente utilizo o AND para juntar tabelas e não o LEFT JOIN


Oi Mateus, como Calebe informou, as finalidade são bem distintas, explicou basicamente a mesma coisa só que mais detalhada e com melhor didática, acredito eu.

Join eh junção, para se fazer as chamadas intersecções aquilo que aprendíamos em matemática no ginásio, contido e não contido e tal.

O and eh para tratamento de logica, por isso utilizando no where.

Alem do código ficar mais limpo e claro, como o Calebe informou, para alguém que leia seu código ficara melhor de entender.

Acredito que raramente haveriam diferenças de performance nos bancos quando vc faz associações listando as tabelas no from ou em joins(junções), particularmente acho que com join eh mais performático, mas isso eh questão para plano de execução.

Pode-se levar em consideração uma boa pratica tbm e por ai vai.

Eu uso sempre junções(join)

Atenciosamente,


Ok! Obrigado pela orientação
Responder

04/01/2019

Vinicius Cavagnolli

Só pra esclarecer, a nível de performance, importa muito mais o plano de execução do que a maneira sintática de escrever a query. Por padrão de legibilidade, o JOIN é sempre mais indicado sim, porém principalmente pro pessoal que tá iniciando, usar o AND é mais legal, a nível de simplificação.
Eu uso sempre o JOIN quando posso, e em muitos poucos casos uso o AND, e quando uso, apenas para INNER JOINS. Na escolha entre LEFT e AND, eu ficaria sempre com o LEFT, já em caso de INNER, tanto faz!

Mas respondendo direto às perguntas... Não, não existe mais correto, sempre verifique o plano de execução da query. E diferença de desempenho, o que se espera dos SGDBs de hoje em dia, é que otimizem corretamente a query, independente da forma que for escrita (se tiver que trazer o mesmo resultado, deve ser executada na mesma velocidade).
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar