Para fazer um join em alguma tabela é nessario ter um chave estrengeira que referência a chave primaria da tabela que eu quero relacionar…??ou posso relacionar apenas por campos…??
Nao precisa de chave estrangeira.
Rafael
[quote=Rafael Steil]Nao precisa de chave estrangeira.
Rafael[/quote]
mas é uma boa pratica
Amigo, sem uma chave estrangeira o que você estará fazendo na verdade é um plano cartesiano, apenas multiplicando os valores de uma tabela com os valores da outra, gerando normalmente informações inconsistentes…
A concepção do ‘join’ é justamente para padronizar isso…
você pode muito bem usar um plano cartesiano:
Select * from pessoa, endereco
Mas o join, principalmente em SGBDs e bancos como o MSSQLServer, o Oracle, o Postgress… obriga a cláusola ‘on’ para forçar essa consistência dos dados e evitar erros, já em bancos como o informix o jeito é um select simples mesmo como a cláusola where… o que alguns também chamam de join, quando na verdade acredito que a concepção seja outra…
Cara, no ON eu não sou obrigado a usar uma chave, posso usar o campo que eu bem entender