Para que serve JOIN?

olá pessoal do PJ

tava pequisanu ae esses dias, e eis que eu descubro uma forma de linkar tabelas no SELECT usando uma tal instrução JOIN. Mas não sei o que é isso e o material que eu encontrei é muito pouco explicativo.
Gostaria de saber mais sobre essa instrução, quando deve ser usada, etc.

Agradeço desde já,

Ederson

cara, join serve para vc "linkar’ 2 tabelas.

por exemplo, tenho 2 tbls no meu banco:

TabelaPessoa
idPessoa;
fkIdCliente;

TabelaCliente
idCliente;
clienteNome;
clienteFone

agora eu quero saber todos os nomes de cliente que são uma pessoa:

Select clienteNome from TabelaCliente inner join TabelaPessoa on idCliente = fkIdCliente where clienteFone = 123456;

Nesta instrução eu verifiquei todos os clientes que são uma pessoa e tenham telefone = 123456.

Ficou claro?

Em álgebra relacional chama-se junção natural e tem umas definições bastante divertidas nos livros de banco de dados…

por exemplo, o sql anterior pode ser traduzido (e um pouco modificado para fazer mais sentido):

Select C.*, P.idPessoa from TabelaCliente C, TabelaPessoa P where C.idCliente = P.fkIdCliente and C.clienteFone = 123456;

Entedi pessoal,

o método que o Viecili explicou eu já conhecia, mas esse usando JOIN não. Gostaria de saber qual a diferença real entre eles, vantagens e desvantagens de um ou do outro. Se bem q axo q jah tou pedindo demais… :roll:

Ederson

A vantagem de vc usar “JOIN” é deixar que o banco de dados escolha a melhora maneira e ordem de ‘junção’ entre os valores relacionados nas tabelas. Embora, no caso da junção natural, a maioria dos bancos converte em uma cláusula where simples.
Outra vantagem é deixar o sql mais compreensível e de alto-nível.