GARANTIR DESCONTO

Fórum Inner join com 3 tabelas #409102

04/11/2011

0

alguem pode me ajudar ?

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

Luiz Lopes

Responder

Posts

04/11/2011

Deivison Melo

Seria mais ou menos isso!!


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!!
Responder

Gostei + 0

05/11/2011

Luiz Lopes

Olá deivison eu executei esse comando que vc me passou mais
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
Responder

Gostei + 0

06/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.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
Responder

Gostei + 0

08/11/2011

Luiz Lopes

Deivison vou te incomodar mais uma vez ,cara essa ultima consulta que vc me mandou
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


Responder

Gostei + 0

15/12/2011

Vagner Almeida

Tenta assim:

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
Responder

Gostei + 0

10/03/2012

Claudio Apolonio

Uma tabela de relacionamento seria o mais ideal a se utilizar nesse modelo cliente <-> endereço. Mais de qualquer forma desse jeito deve funcionar. Qualquer dúvida estamos aí.

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
Responder

Gostei + 0

10/03/2012

Claudio Apolonio

Desculpe, mais a tag de código não esta legal. Segue o Sql:

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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar