Guilherme014 Postado Novembro 5, 2004 Denunciar Share Postado Novembro 5, 2004 Alguém saberia me dizer, como faço para vizualizar estes dados em uma listagem, ajuntando estas 4 tabelas....$consulta = mysql_query("select * from pessoafisica, comunicacoes, enderecos, usuarios");para quem quizer o meu código sql é esse ai./*Created 31/8/2004Modified 2/11/2004Project Loja do HélioModel MySqlCompany LOPESAuthor GuilhermeVersion 1.0Database mySQL 3.23 */Create table pessoafisica ( cpf Varchar(20) NOT NULL , identidade Integer(4) NOT NULL , orgaoemissor Varchar(30) NOT NULL , nome Varchar(20) NOT NULL , email Char(100) NOT NULL , sexo Char(20) NOT NULL , dianasc Integer(2) NOT NULL , mesnasc Integer(2) NOT NULL , anonasc Integer(4) NOT NULL , dddtelefone Integer(3) NOT NULL , telefone1 Char(4) NOT NULL , telefone2 Char(4) NOT NULL , dddcelular Integer(3) NOT NULL , celular1 Char(4) NOT NULL , celular2 Char(4) NOT NULL , dddfax Integer(3) NOT NULL , fax1 Char(4) NOT NULL , fax2 Char(4) NOT NULL , estadocivil Char(20) NOT NULL , usuarioid Integer(11) NOT NULL , data Datetime NOT NULL , Primary Key (cpf));Create table produtoquemaisvenderam ( produtoquemaiscomprouid Integer(4) NOT NULL , vendaid Integer(4) NOT NULL , data Datetime , Primary Key (produtoquemaiscomprouid));Create table produtos ( produtoid Integer(11) NOT NULL , diretorio Text , largura Text , altura Text , nomeproduto Text NOT NULL , conteudo Text NOT NULL , diacompra Integer(2) NOT NULL , mescompra Integer(2) NOT NULL , anocompra Integer(4) NOT NULL , precocompra Float(10,2) NOT NULL , precovenda Float(10,2) NOT NULL , prazoentrega Char(10) NOT NULL , estoque Integer(11) NOT NULL , ativar Tinyint(2) NOT NULL , promocao Tinyint(2) NOT NULL , desconto Float(10,2) NOT NULL , valornovo Float(10,2) NOT NULL , data Datetime NOT NULL , Primary Key (produtoid));Create table tipologradouros ( tipologradouroid Integer(4) NOT NULL , sigla Char(3) NOT NULL , nome Varchar(50) NOT NULL , ativar Char(1) NOT NULL , data Datetime NOT NULL , Primary Key (tipologradouroid));Create table produtoquemenosvenderam ( produtoquemenoscomprouid Char(20) NOT NULL , vendaid Integer(4) NOT NULL , data Datetime , Primary Key (produtoquemenoscomprouid));Create table paises ( paisid Integer(4) NOT NULL , nome Varchar(50) NOT NULL , sigla Char(3) NOT NULL , padrão Char(1) NOT NULL , data Datetime NOT NULL , Primary Key (paisid));Create table orcamentos ( orcamentoid Integer(4) NOT NULL , data Datetime , usuarioid Integer(11) NOT NULL , Primary Key (orcamentoid));Create table vendas ( vendaid Integer(4) NOT NULL , usuarioid Integer(11) NOT NULL , quantidadeproduto Integer(11) NOT NULL , valorunitarioproduto Float(10,2) NOT NULL , valortotalproduto Float(20,2) NOT NULL , produtoid Integer(11) NOT NULL , valortotalcompra Float(20,2) NOT NULL , data Datetime , Primary Key (vendaid));Create table estados ( estadoid Integer(4) NOT NULL , sigla Varchar(2) NOT NULL , nome Varchar(40) NOT NULL , ativar Char(1) NOT NULL , data Datetime NOT NULL , Primary Key (estadoid));Create table bancos ( codigobancoid Integer(11) NOT NULL , banco Integer(0) NOT NULL , nomebanco Varchar(50) NOT NULL , agencia Integer(4) NOT NULL , nomeagencia Varchar(40) NOT NULL , contacorrente Integer(4) NOT NULL , diaber Integer(11) NOT NULL , mesaber Integer(11) NOT NULL , anoaber Integer(4) NOT NULL , ativar Char(1) NOT NULL , date Datetime NOT NULL , Primary Key (codigobancoid));Create table cartoes ( codigoid Integer(11) NOT NULL , cartao Integer(11) NOT NULL , nomecartao Char(50) NOT NULL , numerocartao Integer(11) NOT NULL , datavencimento Varchar(10) NOT NULL , data Datetime NOT NULL , Primary Key (codigoid));Create table pagarmentos ( pagamentoid Integer(11) NOT NULL , data Datetime NOT NULL , codigobancoid Integer(11) NOT NULL , codigoid Integer(11) NOT NULL , usuarioid Integer(11) NOT NULL , Primary Key (pagamentoid));Create table cidades ( cidadeid Integer(11) NOT NULL , nome Char(100) NOT NULL , sigla Char(3) NOT NULL , ativar Char(1) NOT NULL , data Datetime NOT NULL , Primary Key (cidadeid));Create table usuarios ( usuarioid Integer(11) NOT NULL AUTO_INCREMENT, login Char(15) NOT NULL , password Char(11) NOT NULL , ip Text NOT NULL , status Char(1) NOT NULL , podecomprar Char(1) NOT NULL , data Datetime NOT NULL , Primary Key (usuarioid));Create table pessoajuridica ( cnpj Varchar(20) NOT NULL , nomefantazia Char(50) NOT NULL , razaosocial Char(20) NOT NULL , pessoaresponsavel Char(50) NOT NULL , ramalpessoaresponsavel_ Char(4) NOT NULL , emailpessoaresponsavel Char(100) NOT NULL , dddcelularpessoaresponsavel Char(3) NOT NULL , celular1pessoaresponsavel Char(4) NOT NULL , celular2pessoaresponsavel Char(4) NOT NULL , cargopessoaresponsavel Char(50) NOT NULL , dddtelefone Integer(3) NOT NULL , telefone1 Char(4) NOT NULL , telefone2 Char(4) NOT NULL , dddfax Integer(3) NOT NULL , fax1 Char(4) NOT NULL , fax2 Char(4) NOT NULL , usuarioid Integer(11) NOT NULL , data Datetime NOT NULL , Primary Key (cnpj));Create table enderecos ( enderecoid Integer(11) NOT NULL AUTO_INCREMENT, tipologradouroid Integer(4) NOT NULL , logradouro Char(50) NOT NULL , numero Integer(11) , complemento Char(30) , bairro Char(30) NOT NULL , cidadeid Integer(11) NOT NULL , estadoid Integer(4) NOT NULL , cep1 Char(5) NOT NULL , cep2 Char(3) NOT NULL , paisid Integer(4) NOT NULL , usuarioid Integer(11) NOT NULL , data Datetime NOT NULL , Primary Key (enderecoid));Create table comunicacoes ( comunicacaoid Integer(11) NOT NULL , empresa Char(50) NOT NULL , cargo Char(50) NOT NULL , http Char(100) , fax Char(14) , comoconheci Integer(1) , computador Integer(1) NOT NULL , bandalarga Integer(1) , comprasnet Integer(1) , receber Char(3) , usuarioid Integer(11) NOT NULL , data Datetime , Primary Key (comunicacaoid));Create UNIQUE Index cpf ON pessoafisica (cpf);Create UNIQUE Index produtoquemaiscomprouid ON produtoquemaisvenderam (produtoquemaiscomprouid);Create UNIQUE Index produtoid ON produtos (produtoid);Create UNIQUE Index tipologradouroid ON tipologradouros (tipologradouroid);Create UNIQUE Index produtoquemenoscomprouid ON produtoquemenosvenderam (produtoquemenoscomprouid);Create UNIQUE Index paisid ON paises (paisid);Create UNIQUE Index orcamentoid ON orcamentos (orcamentoid);Create UNIQUE Index vendaid ON vendas (vendaid);Create UNIQUE Index estadoid ON estados (estadoid);Create UNIQUE Index codigoid ON cartoes (codigoid);Create UNIQUE Index pagamentoid ON pagarmentos (pagamentoid);Create UNIQUE Index cidadeid ON cidades (cidadeid);Create UNIQUE Index usuarioid ON usuarios (usuarioid);Create UNIQUE Index cpf2 ON pessoajuridica (cnpj);Create Index enderecoid ON enderecos (enderecoid);Create Index comunicacaoid ON comunicacoes (comunicacaoid);/* Users permissions */ Link para o comentário Compartilhar em outros sites More sharing options...
0 Guilherme014 Postado Novembro 5, 2004 Autor Denunciar Share Postado Novembro 5, 2004 alguém poderia me ajudar, ou o codigo é este mesmo$consulta = mysql_query("select comunicacoes.comunicacaoid, comunicacoes.empresa, comunicacoes.cargo, comunicacoes.http, comunicacoes.comoconheci, comunicacoes.computador, comunicacoes.bandalarga, comunicacoes.comprasnet, comunicacoes.receber, comunicacoes.usuarioid, enderecos.enderecoid, enderecos.numero, enderecos.complemento, enderecos.bairro, enderecos.cidadeid, enderecos.estadoid, enderecos.cep1, enderecos.cep2, enderecos.paisid, enderecos.usuarioid, usuarios.usuarioid, usuarios.login, usuarios.status, usuarios.podecomprar, pessoafisica.cpf, pessoafisica.identidade, pessoafisica.nome, pessoafisica.email, pessoafisica.sexo, pessoafisica.mesnasc, pessoafisica.anonasc, pessoafisica.dddtelefone, pessoafisica.telefone1, pessoafisica.telefone2, pessoafisica.dddcelular, pessoafisica.celular1, pessoafisica.celular2, pessoafisica.dddfax, pessoafisica.fax1, pessoafisica.fax2, pessoafisica.estadocivil, pessoafisica.usuarioid from pessoafisica, comunicacoes, enderecos, usuarios where comunicacoes.usuarioid=enderecos.usuarioid=pessoafisica.usuarioid=usuarios.usuarioid");tó achando ele bem grande, é isso mesmo, pelo menos deu certo !!! Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Novembro 5, 2004 Denunciar Share Postado Novembro 5, 2004 Guilherme, eu de novo cara...hehehe...Um conselho, dê uma olhada em como é a estrutura de um select composto por duas ou mais tabelas. Tente procurar por "join", porque se eu fizer o select pra ti quando você precisar de novo você não vai saber.Vou te dar umas dicas...SELECT {nome dos campos q você quiser}FROM {Tabela que você quer}INNER JOIN {tabela q você quer ligar} ON {ligar os ids das tabelas}WHERE {condição}Ex: Nesse exemplo vou usar "alias" q é um "apelido" q se dá para o nome da tabela pra não ficar muito extenso o select.SELECT usu.nome, cid.nomeFROM usuarios as usuINNER JOIN cidades as cid ON cid.idCidade = usu.idCidade;WHERE cid.idCidade = 1;Se você tivesse mais de uma ligação pra fazer você usaria varias linhas de INNER JOIN. No teu caso você vai precisar de mais de um join pois são 4 ligações não é??... Qualquer coisa posta ae se tu não conseguir...AbraçoCrystian Link para o comentário Compartilhar em outros sites More sharing options...
0 Guilherme014 Postado Novembro 5, 2004 Autor Denunciar Share Postado Novembro 5, 2004 Guilherme, eu de novo cara...hehehe...Um conselho, dê uma olhada em como é a estrutura de um select composto por duas ou mais tabelas. Tente procurar por "join", porque se eu fizer o select pra ti quando você precisar de novo você não vai saber.Vou te dar umas dicas...SELECT {nome dos campos q você quiser}FROM {Tabela que você quer}INNER JOIN {tabela q você quer ligar} ON {ligar os ids das tabelas}WHERE {condição}Ex: Nesse exemplo vou usar "alias" q é um "apelido" q se dá para o nome da tabela pra não ficar muito extenso o select.SELECT usu.nome, cid.nomeFROM usuarios as usuINNER JOIN cidades as cid ON cid.idCidade = usu.idCidade;WHERE cid.idCidade = 1;Se você tivesse mais de uma ligação pra fazer você usaria varias linhas de INNER JOIN. No teu caso você vai precisar de mais de um join pois são 4 ligações não é??... Qualquer coisa posta ae se tu não conseguir...AbraçoCrystian valeu mesmo !!!! Link para o comentário Compartilhar em outros sites More sharing options...
0 Guilherme014 Postado Novembro 5, 2004 Autor Denunciar Share Postado Novembro 5, 2004 Guilherme, eu de novo cara...hehehe...Um conselho, dê uma olhada em como é a estrutura de um select composto por duas ou mais tabelas. Tente procurar por "join", porque se eu fizer o select pra ti quando você precisar de novo você não vai saber.Vou te dar umas dicas...SELECT {nome dos campos q você quiser}FROM {Tabela que você quer}INNER JOIN {tabela q você quer ligar} ON {ligar os ids das tabelas}WHERE {condição}Ex: Nesse exemplo vou usar "alias" q é um "apelido" q se dá para o nome da tabela pra não ficar muito extenso o select.SELECT usu.nome, cid.nomeFROM usuarios as usuINNER JOIN cidades as cid ON cid.idCidade = usu.idCidade;WHERE cid.idCidade = 1;Se você tivesse mais de uma ligação pra fazer você usaria varias linhas de INNER JOIN. No teu caso você vai precisar de mais de um join pois são 4 ligações não é??... Qualquer coisa posta ae se tu não conseguir...AbraçoCrystian neste caso de colocar as tabelas tipo pessoafisica pf,so que no delphi, e aqui tem que colocar o as, eu não sabiamas o resto valeu mesmo Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Novembro 5, 2004 Denunciar Share Postado Novembro 5, 2004 é na verdade o "as" (teoricamente) não é necessário pelo menos nos bancos q já programei. No MySQL acredito q seja opcional...AbraçoCrystian Link para o comentário Compartilhar em outros sites More sharing options...
0 Guilherme014 Postado Novembro 5, 2004 Autor Denunciar Share Postado Novembro 5, 2004 é na verdade o "as" (teoricamente) não é necessário pelo menos nos bancos q já programei. No MySQL acredito q seja opcional...AbraçoCrystian na verdade com o as funcionou, veja como ficou$consulta = mysql_query("select co.comunicacaoid, co.empresa, co.cargo, co.http, co.comoconheci, co.computador, co.bandalarga, co.comprasnet, co.receber, co.usuarioid, en.enderecoid, en.numero, en.complemento, en.bairro, en.cidadeid, en.estadoid, en.cep1, en.cep2, en.paisid, en.usuarioid,usu.usuarioid, usu.login, usu.status, usu.podecomprar, pj.cnpj, pj.nomefantazia, pj.razaosocial, pj.ramalpessoaresponsavel_, pj.emailpessoaresponsavel, pj.dddcelularpessoaresponsavel, pj.celular1pessoaresponsavel, pj.celular2pessoaresponsavel, pj.cargopessoaresponsavel, pj.dddtelefone, pj.telefone1, pj.telefone2, pj.dddfax, pj.fax1, pj.fax2, pj.usuarioidfrom pessoajuridica, comunicacoes, enderecos, usuariosINNER JOIN pessoajuridica as pj ON pj.usuarioid=usu.usuarioidINNER JOIN comunicacoes as co ON co.usuarioid=usu.usuarioidINNER JOIN enderecos as en ON en.usuarioid=usu.usuarioidINNER JOIN usuarios as usu ON usu.usuarioid=usu.usuarioidwhere usu.usuarioid"); Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Novembro 6, 2004 Denunciar Share Postado Novembro 6, 2004 Agora eu fui olhar tuas tabelas e elas não tem ligação (chaves estrangeiras)??Putz, como diria meu amigo Fabyo, é melhor fazer a coisa bem feita pra não dar problema mais tarde. Foi você q criou as tabelas? Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Novembro 6, 2004 Denunciar Share Postado Novembro 6, 2004 (editado) é eu vi tem uma relação sim com o usuarioide desse jeito que você fez ta certo tambémsó que pra não confundir eu uso a sigla fk_usuario chave estrangeira que indica para o id_usuario Editado Novembro 6, 2004 por fabyo Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guilherme014
Alguém saberia me dizer, como faço para vizualizar estes dados em uma listagem, ajuntando estas 4 tabelas....
para quem quizer o meu código sql é esse ai.
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados