Inner join, cross join, left join

4 respostas
edymrex

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…??

4 Respostas

Rafael_Steil

Nao precisa de chave estrangeira.

Rafael

ddduran

Rafael Steil:
Nao precisa de chave estrangeira.

Rafael

mas é uma boa pratica

v1c70r_f

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…

ddduran

Cara, no ON eu não sou obrigado a usar uma chave, posso usar o campo que eu bem entender

Criado 31 de agosto de 2007
Ultima resposta 3 de set. de 2007
Respostas 4
Participantes 4