Pessoal estou com uma duvida com o inner join, tenho uma tabela cad_clientes que nessa tabela eu tenho 2 campos referenciados a uma mesma tabela que é cad_cidades, eu ou seja um campo chamado cid_Atual e outro cid_Anterior como que eu faço pra obter esses dois resultados da minha tabela cad_cidades?
olá leandro-maanaim,
vÊ se ajuda:
http://db.apache.org/derby/docs/dev/pt_BR/ref/rrefsqlj35034.html
http://dev.mysql.com/doc/refman/4.1/pt/join.html
http://dev.mysql.com/doc/refman/5.0/en/join.html
basicamente vc tem q ter 1 atributo em comum nas tabelas,
SELECT * FROM cad_cidades INNER JOIN cad_clientes
ON cad_cidades.cid_Atual = cad_clientes.cid_Atual;
boa sorte,
Ajudou muito, mais eu queria fazer como se foce duas consulta entendi? quero pegar os dois valores.
…tem como postar a estrutura das tabelas?
Seria isso?
Nome da 1º Tabela.: create table Cad_Cidades (cid_codigo integer not null,cid_Nome varchar(40)),constraint pk_cidades primary key(cid_codigo);
Nome da 2º Tabela.: create table Cad_Clientes (cli_Codigo integer not null,cli_Nome varchar(40),cli_Cidade_Atual integer ,cli_Cidade_Anterior integer) ,constraint pk_cliente primary key(cli_codigo),constraint fk_cliente foreign key(cli_Cidade_Atual) references Cad_Cidades(cid_Codigo),constraint fk_cliente02 foreign key(cli_CidadeAnterior) references Cad_Cidades(cid_Codigo);
SELECT *
FROM cad_cidades c1
INNER JOIN cad_clientes ON c1.cid_Atual = cad_clientes.cid_Atual
INNER JOIN cad_cidades c2 ON c2.cid_Anterior = cad_cliented.cid_Anterior
Ou faz 2 vezes a consulta e usa um union tipo
Select codCidadeAtual From .... Inner ...
Union
Select codCidadeAnterior From ... Inner ...
Esse c1 e c2 é oque?
Chama-se “alias” se não me engano … ao invés de ter que escrever toda vez o nome da tabela cad_cidades utiliza apenas c2 ( ou qualquer outro nome, tipo XuXu )
Pode-se então utilizar quantas vezes quiser a mesma tabela c1,c2,c3… depois pra pegar a coluna, apenas coloca c2.cidAtual ex:
SELECT c1.cidAtual, c2.cid_anterior, *
FROM cad_cidades c1
INNER JOIN cad_clientes ON c1.cid_Atual = cad_clientes.cid_Atual
INNER JOIN cad_cidades c2 ON c2.cid_Anterior = cad_cliented.cid_Anterior
Acho que não fui sucintamente claro hehehe… manda ai o que vc não entender.
Cara esses “Alias” ai que vc ta me alando ta me rebentando kakakakakka ta confundido minha memoria rsrs escreve normal ai pa nao ta dando certo nao.rsrsrs
Cara so lembrando que cli_cidAtual e cli_cid_Anteior está na minha tabela cad_Clientes.
Sem eles fica difícil ! em SQL usa-se direto ! um exemplo pra você entender, executa apenas esse select
Select X.cid_codigo, X.cid_Nome From Cad_Cidades X
Agora executa todo, tens que dar certo.
Select c1.cid_nome As 'Cidade Atual', c2.cid_Anterior, cli.nome As nomeCliente
From Cad_Clientes cli
Inner Join Cad_Cidades c1 On (c1.cid_codigo = cli.cli_Cidade_Atual)
Inner Join Cad_Cidades c2 On (c2.cid_Codigo = cli.cli_Cidade_Anterior)
Agora não tem pq não dar certo !! boa sorte.
Ta osso… Fiz isso tudo e nao da certo mano
Select c1.cid_nome As ‘Cidade Atual’, c2.cid_Anterior, cli.nome As nomeCliente
From Cad_Clientes cli
Inner Join Cad_Cidades c1 On (c1.cid_codigo = cli.cli_Cidade_Atual)
Inner Join Cad_Cidades c2 On (c2.cid_Codigo = cli.cli_Cidade_Anterior)
[quote=leandro-maanaim]Ta osso… Fiz isso tudo e nao da certo mano
Select c1.cid_nome As ‘Cidade Atual’, c2.cid_Anterior, cli.nome As nomeCliente
From Cad_Clientes cli
Inner Join Cad_Cidades c1 On (c1.cid_codigo = cli.cli_Cidade_Atual)
Inner Join Cad_Cidades c2 On (c2.cid_Codigo = cli.cli_Cidade_Anterior)[/quote]
Que erro esta dando quando você executa? só por curiosidade qual banco é?
MYSQL 4.1
erro : unknown column ‘c1.cid_Anterior’ in ‘field list’
[quote=leandro-maanaim]MYSQL 4.1
erro : unknown column ‘c1.cid_Anterior’ in ‘field list’[/quote]
[code]
Select c1.cid_nome As ‘Cidade Atual’, c2.cid_nome As ‘Cidade Anterior’, cli.nome As nomeCliente
From Cad_Clientes cli
Inner Join Cad_Cidades c1 On (c1.cid_codigo = cli.cli_Cidade_Atual)
Inner Join Cad_Cidades c2 On (c2.cid_Codigo = cli.cli_Cidade_Anterior) [/code]
Tenta agora manolo.
agora deu erro no unknown column ‘cli.nome’ in ‘field list’
:S
Ta Osso Juvenal rsrsrs.
[quote=leandro-maanaim]agora deu erro no unknown column ‘cli.nome’ in ‘field list’
:S[/quote]
Troca o “Select cli.nome” pelo nome da coluna da sua tabela Cad_CLiente ou seja cli.cli_Nome
Confere se os nome que eu coloquei no código esta igual aos nome da sua tabela…
caso aconteça mais algum erro.
Mais mastigado !!
Select c1.cid_nome As 'Cidade Atual', c2.cid_nome As 'Cidade Anterior', cli.cli_nome As nomeCliente
From Cad_Clientes cli
Inner Join Cad_Cidades c1 On (c1.cid_codigo = cli.cli_Cidade_Atual)
Inner Join Cad_Cidades c2 On (c2.cid_Codigo = cli.cli_Cidade_Anterior)
Ops…Agora de certo rsrs Um valew pela paciencia cara rsrs. posso fechar o post ou agente vai bater mais um papo?
Só se tu for me apresentar sua irmã … brincadeira !!!
Pode fechar sim, disponha…