Ir para conteúdo

POWERED BY:

Arquivado

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

felini

[Resolvido] Select em mais de uma tabela...

Recommended Posts

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

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

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

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

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

×

Informação importante

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