Comandos sql - join
Um comando SELECT também pode fazer uma consulta que traz dados de duas ou mais tabelas. Esse é um processo chamado de junção [join].
Esse tipo de junção conecta duas ou mais tabelas e retorna apenas as linhas que satisfazem a condição de junção
As tabelas têm uma coluna em comum que é usado para fazer as junções.
Quando usamos várias tabelas, é necessário estarmos atentos à possibilidade de ambiguidade entre o nome das colunas de tabelas.
Caso estejamos consultando dados de tabelas que tenham campos com nomes ambíguos (iguais) (por exemplo, Pessoa e Produto), é necessário especificar de qual tabelas queremos buscar o campo ambíguo Exemplo: Pessoa.Nome e Produto.Nome)
INNER JOIN:
A palavra-chave INNER JOIN exibe os registros quando há, pelo menos, uma ocorrência em ambas as tabelas.
Sintaxe:
Select Tabela1.Campo1,Tabela1.Campo2,...,Tabela2.Campo1,Tabela2.Campo2,....,Tabela3.Campo1,Tabela3.Campo1,....... From Tabela1 Inner Join Tabela2 on Tabela1.Campo = Tabela2.Campo Inner Join Tabela3 on Tabela1 [2].Campo = Tabela3.Campo [Where ] [Group By … .. ] Order By Campo Asc/Desc....
onde: A condição de Junção é declarado com a cláusula ON (devendo ser do mesmo tipo) , as colunas são comparadas usando o = e as colunas aparecem no resultado, mostrando dados redundantes, já que elas têm o mesmo valor.
*/
drop database exemplojoin go create database exemplojoin go use exemplojoin go --------------------------------------------------------------------------------------- --- Tabela de Cargo Create Table Cargo
(
Cod_Cargo varchar(3), Nome varchar(25), Data_admissao datetime Constraint PK_Cargo primary key (Cod_Cargo) )
insert into Cargo values ('1','Gerente de Marketing','23/05/1991') insert into Cargo values ('2','Gerente de Vendas','22/10/2001') insert into Cargo values ('3','Encarregado de Vendas','20/11/2001') insert into Cargo