felini 0 Denunciar post Postado Maio 18, 2010 Fala galera, Estou fazendo um script que busque o mesmo campo em várias tabelas diferentes. Exemplo quero buscar o campo "pergunta01" nas tabelas "teste1,teste2,teste3". Rodei uma query no phpMyAdmin: SELECT pergunta01 FROM teste1,teste2,teste3 WHERE <condições>; Retorna a seguinte mensagem: #1052 - Column 'pergunta01' in field list is ambiguous Como posso fazer? Terei eu de rodar uma query pra cada tabela? :( Valeu pela ajudar! Fico no aguardo! Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Maio 19, 2010 se as tabelas forem iguais você pode empilhar elas com UNION ou UNION ALL, ou ainda empilhar subquerys das tabelas com union Compartilhar este post Link para o post Compartilhar em outros sites
felini 0 Denunciar post Postado Maio 19, 2010 se as tabelas forem iguais você pode empilhar elas com UNION ou UNION ALL, ou ainda empilhar subquerys das tabelas com union Fala giesta! Valeu pela dica cara! Fiz um teste, rodei a seguinte query no phpMyAdmin: SELECT cadastro,pergunta01 FROM tabela1WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela2 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela3 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela4 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela5 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela6 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela7 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela8 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19'; E retornou 4 resultados. Até aí, tudo bem. Porém quando faço por script, retorna somente o número 1. $pg01_a = mysql_num_rows(mysql_query( "SELECT cadastro,pergunta01 FROM tabela1 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela2 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela3 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela4 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela5 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela6 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela7 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19' UNION ALL SELECT cadastro,pergunta01 FROM tabela8 WHERE pergunta01='propaganda' and cadastro BETWEEN '2010-05-17' and '2010-05-19';")); Não consegui achar nenhum erro, poderiam me auxiliar? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
vagnerC 0 Denunciar post Postado Maio 20, 2010 Se está aparecendo somente um resultado, é provável que você não tenha recuperado os dados em um WHILE, não é? Faz assim: $sql_teste = mysql_query("SELECT campoA, campoB FROM tabela "); while($result_sql_teste = mysql_fetch_array($sql_teste)) { $campoA = $result_sql_teste['campoA']; $campoB = $result_sql_teste['campoB']; } Compartilhar este post Link para o post Compartilhar em outros sites
felini 0 Denunciar post Postado Maio 20, 2010 Fala Vagner, tranquilo? Acho que você não compreendeu direito. A idéia é retornar o número de linhas de um select de uma só vez. Acho que é algum erro de sintaxe no UNION ALL, mas não estou sabendo qual é! :( []s Tche! Achei o erro!!!! Estava passando o valor da data errado pelo formulário! Foi mal aí! Não esperava por essa porque tinha feito um teste simples antes. Agora que identifiquei! :( Podem fechar o tópico! Está resolvido! Compartilhar este post Link para o post Compartilhar em outros sites