|
<< Select | Valores Calculados e Cláusula Group By >>
|
referências >
sql > inner join e outer join |
|
|
. : : . inner join e outer join . : : .
|
Podes usar a declaração
Select para mostrar dados/registos de mais do que uma tabela ao mesmo tempo.
As declarações SQL que tipicamente referenciam mais que uma tabela (mas não
necessariamente) usam a declaração Join para ligar tabelas com um
campo comum ou valor.
Por exemplo:
|
SELECT AlunoID
FROM Professor_do_Aluno INNER JOIN Professores ON
Professor_do_Aluno.ProfessorID=Professores.ProfessorID
WHERE Professores.UltimoNome='Silva' AND
Professores.PrimeiroNome='Antonio' |
Quando usas duas
tabelas, não podes usar o asterisco (*) como atalho para seleccionar todos
os campos de apenas uma tabela (embora o possas fazer nas duas tabelas ao
mesmo tempo). Neste caso a sintaxe nometabela.* selecciona todos os
campos da tabela nometabela.
A declaração Inner Join requer que sejam especificadas quais as tabelas e
campos da base de dados que devem ser unidas para produzir uma query.
Também, quando trabalhas com mais que uma tabela, tens de especificar o nome
da tabela, assim como o nome da coluna para cada um dos campos, onde o nome
do campo aparece em mais que uma tabela.
Por outras palavras, se o nome da coluna não for único entre todos os
campos em todas as tabelas na cláusula From, o servidor gera um erro, porque
não consegue distinguir de que tabela vai extrair os dados/registos.
Quando sabes que pode
não existir uma chave estrangeira (foreign key), ou pode não coincidir com o
valor de uma chave na tabela unida, podes efectuar a declaração Left (Outer)
Join ou então a declaração Right (Outer) Join. A palavra Outer é
opcional. As Outer Joins retornam todos os valores de uma tabela mesmo que
não exista uma chave que coincida.
<< Select | Valores Calculados e Cláusula Group By >>
|