Fórum Inner join com 3 tabelas #409102
04/11/2011
0
Tenho uma banco de dados onde preciso fazer um inner join com 3 tabelas
tenho a tabela pessoa que tem os atributose quero consultar esses dados(nome,sexo,idade,email,datanascimento,estadocivil,cpf
rg,telefonefixo , celular)
Tabela cliente que tem apenas o codigo do cliente
Tabela endereço que tem (endereco , cidade , bairro ,cep uf )
quero fazer um inner join nas três tabelas para aparecer os dados codigo do cliente ,nome ,idade ,nome,sexo,idade,email,datanascimento,estadocivil,cpf,rg,telefonefixo , celular ,endereco , cidade , bairro ,cep uf
Luiz Lopes
Curtir tópico
+ 0Posts
04/11/2011
Deivison Melo
select
c.codigoCliente,
p.nome,
p.sexo,
p.idade,
p.email,
p.datanascimento,
p.estadocivil,
p.cpf,
p.rg.
p.telefonefixo,
p.celular,
e.endereco,
e.cidade,
e.bairro,
e.cidade,
e.cep,
e.uf
from pessoa p, cliente c, endereco e
where c.codigoCliente = p.codigoCliente
and c.codigoCliente = e.codigoCliente
Onde no lugar do campo: codigoCliente, você vai usar os campos que faz ligação entre as tabelas, ou o campo faz a ligação entre as três tabelas ou em duas, vai depender da estrutura real de sua tabela...
Espero ter ajudado!
Boa sorte!
PS. Caso precisar colocar os ddl´s de suas tabelas que eu faço o join
não usei o inner join, mas pela lógica o resultado final é o mesmo!!
Gostei + 0
05/11/2011
Luiz Lopes
esta dando este erro : Unknown column p.cli_codigo in where clause
esse e meu script ta tabelas que quero fazer o inner join
CREATE TABLE Pessoa (
pess_codigo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
pess_nome VARCHAR(40) NULL,
pess_sexo VARCHAR(2) NULL,
pess_idade INT(3) NULL,
pess_email VARCHAR(30) NULL,
pess_datanas VARCHAR(20) NULL,
pess_estadocivil VARCHAR(20) NULL,
pess_cpf VARCHAR(14) NULL,
pess_rg VARCHAR(10) NULL,
pess_telefonefixo VARCHAR(20) NULL,
pess_celular VARCHAR(20) NULL,
PRIMARY KEY(pess_codigo)
);
CREATE TABLE Clientes (
cli_codigo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
Pessoa_pess_codigo INTEGER UNSIGNED NOT NULL,
PRIMARY KEY(cli_codigo),
INDEX Clientes_FKIndex1(Pessoa_pess_codigo)
);
CREATE TABLE endereco (
end_codigo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
Fornecedor_forn_codigo INTEGER UNSIGNED NOT NULL,
Pessoa_pess_codigo INTEGER UNSIGNED NOT NULL,
end_endereco VARCHAR(30) NULL,
end_cidade VARCHAR(30) NULL,
end_bairro VARCHAR(30) NULL,
end_cep VARCHAR(30) NULL,
end_uf VARCHAR(2) NULL,
PRIMARY KEY(end_codigo),
INDEX endereco_FKIndex1(Pessoa_pess_codigo),
INDEX endereco_FKIndex2(Fornecedor_forn_codigo)
);
att
Luiz augusto
Gostei + 0
06/11/2011
Deivison Melo
c.codigoCliente,
p.nome,
p.sexo,
p.idade,
p.email,
p.datanascimento,
p.estadocivil,
p.cpf,
p.rg.
p.telefonefixo,
p.celular,
e.endereco,
e.cidade,
e.bairro,
e.cidade,
e.cep,
e.uf
from pessoa p, cliente c, endereco e
where c.codigoCliente = p.codigoCliente
and c.codigoCliente = e.codigoClienteselect
c.codigoCliente,
p.nome,
p.sexo,
p.idade,
p.email,
p.datanascimento,
p.estadocivil,
p.cpf,
p.rg.
p.telefonefixo,
p.celular,
e.endereco,
e.cidade,
e.bairro,
e.cidade,
e.cep,
e.uf
from pessoa p, cliente c, endereco e
where c.cli_codigo = p.pess_codigo
and p.pess_codigo = e.end_codigo
Gostei + 0
08/11/2011
Luiz Lopes
ela funciona ,mas tipo quando eu execulto esse comando no MYSQL
ele me fornece os campos que eu estou pesquisando mais não retorna nenhum dado.
não esta listando os valores dos campos.
att
Gostei + 0
15/12/2011
Vagner Almeida
select a.coluna1, a.coluna2, a.colunaN, x.coluna1, x.coluna2, x.colunaN, y.coluna1, y.coluna2, y.colunaN
from tabela a
inner join tabela x on a.codigo = x.codigo
inner join tabela y on a.codigo = y.codigo
.
.
.
inner join tabela n on a.codigo = n.codigo
espero ter ajundado
Gostei + 0
10/03/2012
Claudio Apolonio
select c.cli_codigo, p.pess_nome, p.pess_sexo, p.pess_idade, p.pess_email, p.pess_datanas, p.pess_estadocivil, p.pess_cpf, p.pess_rg, p.pess_telefonefixo, p.pess_celular, e.end_codigo, e.end_cidade, e.end_bairro, e.end_cep, e.end_uf from pessoa p, clientes c, endereco e where c.Pessoa_pess_codigo = p.pess_codigo and c.Pessoa_pess_codigo = e.Pessoa_pess_codigo
Gostei + 0
10/03/2012
Claudio Apolonio
select
c.cli_codigo,
p.pess_nome,
p.pess_sexo,
p.pess_idade,
p.pess_email,
p.pess_datanas,
p.pess_estadocivil,
p.pess_cpf,
p.pess_rg,
p.pess_telefonefixo,
p.pess_celular,
e.end_codigo,
e.end_cidade,
e.end_bairro,
e.end_cep,
e.end_uf
from pessoa p, clientes c, endereco e
where c.Pessoa_pess_codigo = p.pess_codigo
and c.Pessoa_pess_codigo = e.Pessoa_pess_codigo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)