AND ou LEFT JOIN

Banco de Dados

13/12/2018

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

Curtidas 2

Melhor post

Calebe Menezes

Calebe Menezes

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.
GOSTEI 4

Mais Respostas

Alex Lekao

Alex Lekao

13/12/2018

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,
GOSTEI 0
Mateus Soares

Mateus Soares

13/12/2018

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
GOSTEI 0
Alex Lekao

Alex Lekao

13/12/2018

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,
GOSTEI 2
Mateus Soares

Mateus Soares

13/12/2018

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
GOSTEI 0
Vinicius Cavagnolli

Vinicius Cavagnolli

13/12/2018

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).
GOSTEI 1
POSTAR