Junção no SQL

06/09/2006

0

Gostaria de saber se alguém pode me dizer a diferença conceitual entre a junção comum, tipo:

select departamento.nome ´Departamento´, funcionario.nome
from funcionario, departamento
where funcionario.coddepartamento = departamento.coddepartamento

e usando join, tipo:

select departamento.nome, funcionario.nome
from funcionario inner join departamento
on funcionario.coddepartamento = departamento.coddepartamento

Obrigado :lol:


Tquintao

Tquintao

Responder

Posts

07/09/2006

Wagnerbianchi

Olá tquintão,

Bom, diferença não há nenhuma se o resulta condiz com a sua expectativa em relação à consulta. A única questão é quanto a legibilidade.
As associações INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, CROSS JOIN passaram a existir em uma implementação de uma versão ANSI SQL mais contemporânea, enquanto que, antes disso, as junções ou associações entre tabelas eram feitas de forma a montar quebra-cabeças como o seu primeiro exemplo.

Você ainda poderá implementar associações dessa maneira:

SELECT C.CLIENTE_NOME, A.AUTO_NOME
FROM LOCACAO AS L INNER JOIN CLIENTE AS 
ON L.CLIENTE_COD = C.CLIENTE_COD JOIN AUTOMOVEL AS A
ON L.AUTO_COD = A.AUTO_COD
ORDER BY C.CLIENTE_NOME


...usando os aliases ´AS´ você também poupa escrita de código e não exclui a legibilidade, que é tão importante quanto.

No MOC 2071, recomenda-se escrever JOIN, LEFT JOIN ou RIGHT JOIN, deixando o INNER e o OUTER de fora, isso vai de cada um!

Qualquer dúvida, continue o post!

Abraço!!


Responder

07/09/2006

Wagnerbianchi

Olá tquintão,

Bom, diferença não há nenhuma se o resulta condiz com a sua expectativa em relação à consulta. A única questão é quanto a legibilidade.
As associações INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, CROSS JOIN passaram a existir em uma implementação de uma versão ANSI SQL mais contemporânea, enquanto que, antes disso, as junções ou associações entre tabelas eram feitas de forma a montar quebra-cabeças como o seu primeiro exemplo.

Você ainda poderá implementar associações dessa maneira:

SELECT C.CLIENTE_NOME, A.AUTO_NOME
FROM LOCACAO AS L INNER JOIN CLIENTE AS C
ON L.CLIENTE_COD = C.CLIENTE_COD JOIN AUTOMOVEL AS A
ON L.AUTO_COD = A.AUTO_COD
ORDER BY C.CLIENTE_NOME


...usando os aliases ´AS´ você também poupa escrita de código e não exclui a legibilidade, que é tão importante quanto.

No MOC 2071, recomenda-se escrever JOIN, LEFT JOIN ou RIGHT JOIN, deixando o INNER e o OUTER de fora, isso vai de cada um!

Qualquer dúvida, continue o post!

Abraço!!


Responder

08/09/2006

Tquintao

Caro Wagner,

Obrigado pela resposta, ela satisfez a minha dúvida.

Abraço


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