AND ou LEFT JOIN
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?
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
Curtidas 2
Melhor post
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.
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
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,
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
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,
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
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,
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
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,
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
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).
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