AND ou LEFT JOIN
13/12/2018
0
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
Post mais votado
13/12/2018
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
Mais Posts
13/12/2018
Alex Lekao
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,
13/12/2018
Mateus Soares
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
15/12/2018
Alex Lekao
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,
04/01/2019
Mateus Soares
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
04/01/2019
Vinicius Cavagnolli
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).
Clique aqui para fazer login e interagir na Comunidade :)