Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

laurodm

[Resolvido] Relação entre duas tabelas

Recommended Posts

Olá pessoal...

 

Gostaria de uma pequena ajuda de vocês...

 

Estou desenvolvendo um sistema em que preciso criar várias páginas diferentes de consulta dos dados cadastrados. Na maioria delas tenho que consultar mais de uma tabela, e venho tendo dificuldades para desenvolver o código... aqui o exemplo:

 

Na página de consulta será necessário a visualização de uma tabela com os dados de contatos dos artesãos cadastrados no sistema, dentre estes dados, será necessário identificar a cidade em que ele mora. Porém, no sistema de cadastro, foi preciso criar menus dependentes, para agilizar o cadastro... Desta forma, foram criadas as seguintes tabelas:

 

Tabela: cidades -> tabela que cadastramos as cidades do país

 

CidId = id da cidade

CidIdUf = id do estado que se localiza a cidade

CidIdTerritório = id do território do estado da Bahia (caso a cidade seja da bahia) em que a cidade se localiza

CidNome = Nome da cidade

 

Tabela: artesaos -> tabela que cadastramos os dados dos artesãos

obs: nesta tabela temos o campo "ArtCidadeEnd" que é onde o sistema registra o id da cidade onde o artesão mora (CidId da tabela cidades.

 

Quando vamos exibir o resultado na página html, utilizando uma consulta simples através da tabela artesaos, na coluna cidades serão exibidos os ids das cidades. Porém precisamos que sejam exibidos os nomes das cidades.

 

Então gostaria de saber como fazer a relação entre as tabelas "artesãos" e "cidades", para que no momento da exibição sejam mostrados os nomes das cidades.

 

Agradecido dez de já!

 

@laurodamasceno

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá lauro tudo bem?

 

Seguinte, poste a estrutura da sua tabela artesao para montar a query perfeita mas irei mostrar um exemplo:

SELECT a.CampoNomeArtesao, c.CIDNome FROM artesao a, cidades c
WHERE
    a.ArtCidadeEnd = c.CidId
Order by 1;

Poste a estrutura completa para te explicar como fazer a query.

 

Att,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá h4v3st... vlw pela dica

aqui vão as estruturas das tabelas citadas...

os campos citados estão sublinhados...

 

-- Estrutura da tabela `artesao`

--

 

CREATE TABLE IF NOT EXISTS `artesao` (

`ArtCpf` varchar(18) NOT NULL,

`ArtNome` varchar(45) DEFAULT NULL,

`ArtEscolaridade` varchar(80) DEFAULT NULL,

`ArtDataNascimento` datetime DEFAULT NULL,

`ArtNacionalidade` varchar(30) DEFAULT 'BRASILEIRA',

`ArtUfNatural` varchar(2) NOT NULL,

`ArtCidadeNatural` varchar(40) DEFAULT NULL,

`ArtIdentidade` varchar(18) DEFAULT NULL,

`ArtOrgEmissor` varchar(20) DEFAULT NULL,

`ArtEntRepresentativa` varchar(15) DEFAULT NULL,

`ArtTipologia` varchar(30) DEFAULT NULL,

`ArtFuncionalidade` varchar(30) NOT NULL,

`ArtRamo` varchar(30) DEFAULT NULL,

`ArtTecnica` varchar(30) NOT NULL,

`ArtMateriaPrima` varchar(100) NOT NULL,

`ArtEndereco` varchar(100) DEFAULT NULL,

`ArtBairro` varchar(30) DEFAULT NULL,

`ArtCep` varchar(11) DEFAULT NULL,

`ArtTelefone1` varchar(18) DEFAULT NULL,

`ArteTelefone2` varchar(11) NOT NULL,

`ArteTelefone3` varchar(11) NOT NULL,

`ArtCidadeEnd` varchar(40) DEFAULT NULL,

`ArtDistrito` varchar(30) NOT NULL,

`ArtUf` varchar(2) DEFAULT 'BA',

`ArtDataCadastro` datetime NOT NULL,

`ArtDataExpedicao` datetime DEFAULT NULL,

`ArtNuOrdem` int(11) NOT NULL AUTO_INCREMENT,

PRIMARY KEY (`ArtNuOrdem`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8112 ;

 

 

 

 

-- Estrutura da tabela `cidades`

--

 

CREATE TABLE IF NOT EXISTS `cidades` (

`CidId` int(11) NOT NULL AUTO_INCREMENT,

`CidIdUf` int(11) NOT NULL,

`CidIdTerritorio` int(11) NOT NULL,

`CidNome` varchar(30) NOT NULL,

PRIMARY KEY (`CidId`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=420 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá h4v3st...

 

Consegui resolver!!

utilizei o código que você indicou acima desta forma:

 

UPDATE artesao, cidades SET `artesao.ArtCidadeEnd` = cidades.CidId WHERE `artesao.ArtCidadeEnd` = cidades.CidNome ;

 

Agora tenho problemas com o filtro... estou utilizando o Dreamweaver cs3 com o aplicativo Developetollbox... estou analizando pra ver se consigo encontrar o problema

 

muito obrigado pela ajuda cara!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.