Ir para conteúdo

POWERED BY:

Arquivado

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

salmaox

consulta sql

Recommended Posts

Boa Tarde pessoal,estou com uma dúvida aqui e preciso muito de uma ajuda.é o seguinte: eu tenho 2 tabelas, 'pessoa_fisica' e outra 'pesquisa'meu formulário possui 40 questões sendo que de 1 a 7 é somente para cadastro e os dados vão pra tabela de pessoa_fisica. da 8ª em diante os dados vão para a tabela de pesquisa. Se o usuário respondeu de 1 a 7 apenas e ele saiu e não respondeu da 8ª em diante, assim seu login só aparecerá na tabela pessoa_fisica, mas se ele respondeu da 8ª em diante seu login aparecerá nas duas tabelas(pf e pesquisa)gostaria de selecionar apenas os emails dos usuários que responderam de 1 a 7. segue as estrutura das tabelasPESSOA_FISICA-- Estrutura da tabela `PESSOA_FISICA`--CREATE TABLE IF NOT EXISTS `PESSOA_FISICA` ( `LOGIN` varchar(20) NOT NULL, `CPF` varchar(14) NOT NULL, `NOME_COMPLETO` varchar(50) default NULL, `SEXO` varchar(15) default NULL, `DATA_NASC` varchar(10) default NULL, `ENDERECO_RES` varchar(50) default NULL, `NUMERO` varchar(4) default NULL, `COMPLEMENTO` varchar(20) default NULL, `BAIRRO` varchar(30) default NULL, `CIDADE` varchar(30) default NULL, `UF` varchar(2) default NULL, `CEP` varchar(9) default NULL, `PAIS` varchar(30) default NULL, `TELEFONES` char(14) default NULL, `TEL_OU` char(14) default NULL, `FAX` char(14) default NULL, `EMAIL` varchar(50) default NULL, `PAGINA_WEB` varchar(60) default NULL, `EMPRESA` varchar(50) default NULL, `TELEFONE_EMPRESA` char(14) default NULL, `TEL_OU_EMPRESA` char(14) default NULL, `PROFISSAO` varchar(50) default NULL, `CARGO_ATUAL` varchar(50) default NULL, `FORM_ACADEMICA` varchar(50) default NULL, `ESCOLARIDADE` varchar(30) default NULL, `VINCULO_EMP` varchar(60) default NULL, `Q7` varchar(3) default NULL, `DATA` date NOT NULL, PRIMARY KEY (`LOGIN`), KEY `CPF` (`CPF`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;PESQUISACREATE TABLE IF NOT EXISTS `PESQUISA` ( `LOGIN` varchar(30) NOT NULL, `TIPO` varchar(12) default NULL, `ESTADO` varchar(1) default NULL, `QA` varchar(40) default NULL, `QB` varchar(8) default NULL, `QC` varchar(3) default NULL, `QD` varchar(8) default NULL, `QE` varchar(5) default NULL, `QE1` tinyint(1) default NULL, `QE2` tinyint(1) default NULL, `QE3` tinyint(1) default NULL, `QE4` tinyint(1) default NULL, `QE5` tinyint(1) default NULL, `QF` varchar(5) default NULL, `QF1` tinyint(1) default NULL, `QF2` tinyint(1) default NULL, `QF3` tinyint(1) default NULL, `QF4` tinyint(1) default NULL, `QG` varchar(5) default NULL, `QG1` tinyint(1) default NULL, `QG2` tinyint(1) default NULL, `QH` varchar(40) default NULL, `QI` varchar(80) default NULL, `QJ` varchar(15) default NULL, `QK` varchar(30) default NULL, `QL` varchar(3) default NULL, `QM` varchar(3) default NULL, `QN1` smallint(6) default NULL, `QN2` smallint(6) default NULL, `QN3` smallint(6) default NULL, `QN4` smallint(6) default NULL, `QN5` smallint(6) default NULL, `QN6` smallint(6) default NULL, `QN7` smallint(6) default NULL, `QN8` smallint(6) default NULL, `QN9` smallint(6) default NULL, `QP` varchar(3) default NULL, `QQ` varchar(3) default NULL, `QR` varchar(11) default NULL, `QR1` smallint(6) default NULL, `QR2` smallint(6) default NULL, `QR3` smallint(6) default NULL, `QS` varchar(30) default NULL, `QT` varchar(11) default NULL, `QU` varchar(3) default NULL, `QV` varchar(15) default NULL, `QX` varchar(30) default NULL, `QY` varchar(12) default NULL, `QZ` varchar(15) default NULL, `QAA` varchar(15) default NULL, `QAB` text, `QAC` varchar(15) default NULL, `QAD` text, `QAE` varchar(14) default NULL, `QAF` varchar(14) default NULL, `QAG` varchar(14) default NULL, `QAH` text, `QAI` varchar(3) default NULL, `QAJ` text, `QAK` text, `DATA` date NOT NULL, PRIMARY KEY (`LOGIN`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;DESDE JÁ MUITO OBRIGADO

Compartilhar este post


Link para o post
Compartilhar em outros sites

gostaria de selecionar apenas os emails dos usuários que responderam de 1 a 7

OPa,Sua tabela número 2 está muito confusa mas, o lance é fazer uma JOIN entre as duas tabelas, relacionando-as pelo campo LOGIN:
SELECT EMAILFROM PESSOA_FISICA AS A INNER JOIN PESQUISA AS BON A.LOGIN = B.LOGIN;

...agora, restringir usuários que só responderam de 1 a 7 poderia ser fácil se tivéssemos as questões na segunda tabela.Achei complicado...poderia explicar?Abração!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Amigo,é o seguinte, se um usuário responde de 1 a 7 ou de 1 a 40 ele sempre aparecerá na tabela de pessoa fisica, mas se ele respondeu apenas as questões de 1 a 7 ele só aparecerá na tabela de pessoa_fisica, ele só irá aparecer na tabela pesquisa se responder da 8ª em diante. A minha dúvida é em selecionar apenas os emails dos usuários que responderam as questões de 1 a 7, os usuários que responderam da 8ª em diante não servem, mas eles tb aparecem na tabela de pessoa_fisica. por isso estou com dificuldades de filtrar.eu tentei dessa formaSELECT EMAIL FROM PESSOA_FISICA WHERE LOGIN NOT IN (SELECT LOGIN FROM PESQUISA);mas o total de emails não bateu!!!será q ficou meio confuso???rsrsrs desde já muito obrigado

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.