pedrola 0 Denunciar post Postado Novembro 6, 2009 Olá! Tenho 6 tabelas e cada uma delas têm campos diferentes, com exceção da "num_sorteio" e "participando". O que eu quero fazer é um sorteio eletronico, onde será pego um numero aleatóriamente entre essas tabelas. Algo como: SELECT num_sorteio FROM todas as tabelas WHERE participando = 1 ORDER BY rand() LIMIT 1 Mas fazendo isso tenho um problema: mesmo sendo "num_sorteio" e "participando" dois campos iguais em tds as tabelas, ele dá erro de "Ambiguous" (ou algo do tipo). Alguem teria uma luz? Para qm manja de banco isso deve ser baba! Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 6, 2009 Esses campos se relacionam? ou apenas tem nomes iguais por coincidência? você precisa informar de qual tabela, é o campo que você quer, qndo tiver esse tipo de conflito: SELECT tabela.num_sorteio FROM Compartilhar este post Link para o post Compartilhar em outros sites
pedrola 0 Denunciar post Postado Novembro 6, 2009 Se relacionando não estão... é q é um sorteio. Imagine eu pegando 6 caixas com bolinhas com numeros, misturasse tudo num saco e pegasse apenas uma bolinha. Sacou o lance? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 7, 2009 tente algo assim : select * from ( SELECT num_sorteio FROM tabela1 WHERE participando = 1 union all SELECT num_sorteio FROM tabela2 WHERE participando = 1 union all SELECT num_sorteio FROM tabela3 WHERE participando = 1 union all SELECT num_sorteio FROM tabela4 WHERE participando = 1 union all SELECT num_sorteio FROM tabela5 WHERE participando = 1 union all SELECT num_sorteio FROM tabela6 WHERE participando = 1 ) ORDER BY rand() LIMIT 1 Compartilhar este post Link para o post Compartilhar em outros sites
pedrola 0 Denunciar post Postado Novembro 9, 2009 Motta, desculpa a demora pela resposta! Mas kra era isso mesmo! Só uma correçãozinha boba, faltou o "AS num_sorteio" depois (para o caso de alguém ter a mems dúvida q eu tive) select * from ( SELECT num_sorteio FROM tabela1 WHERE participando = 1 union all SELECT num_sorteio FROM tabela2 WHERE participando = 1 union all SELECT num_sorteio FROM tabela3 WHERE participando = 1 union all SELECT num_sorteio FROM tabela4 WHERE participando = 1 union all SELECT num_sorteio FROM tabela5 WHERE participando = 1 union all SELECT num_sorteio FROM tabela6 WHERE participando = 1 ) AS num_sorteio ORDER BY rand() LIMIT 1 Valeu! Compartilhar este post Link para o post Compartilhar em outros sites