theteo 0 Denunciar post Postado Março 22, 2013 Galera, faço duas buscas na base de dados ordenando por data, e na hora de mostrar eu listo primweiro a busca 1, depois a busca 2, acontece que dessa forma, como ja é esperado, os registros nao ficam ORDENADOS, pois na hora que começa a relacionar a busca 2, a data começa de novo. as querys: $verifica = mysql_query("select m.sms, m.data_sms, c.celular_contrib, c.nome_contrib from tbl_sms_contrib m, tbl_contribuintes c where c.id_contrib = m.id_contrib and m.id_serv = '$id_serv' and YEAR(m.data_sms) = '$ano' order by m.data_sms DESC"); $verifica2 = mysql_query("select m.sms, m.data_sms, m.mat_destinatario, s.celular_serv from tbl_sms_serv m, tbl_servidores s where s.matricula_serv = m.mat_destinatario and m.mat_remetente = '$matricula_serv' and YEAR(m.data_sms) = '$ano' order by m.data_sms DESC"); A dúvida é: Como juntar isso em uma única query ?Como recuperar depois os valores já que os campos nao possuem o mesmo nome ? Obrigado amigos. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 22, 2013 http://dev.mysql.com/doc/refman/5.0/en/union.html Compartilhar este post Link para o post Compartilhar em outros sites
theteo 0 Denunciar post Postado Março 24, 2013 Valeu motta, eu tentei usar aguns exemplos usando UNION mais nao obtive sucesso, por isso postei meu codigo na esperança de alguem me ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 24, 2013 Basicamente e juntar as duas queries mas elas tem de ter os mesmos numeros de colunas e tipos, o nome das colunas fica o da 1@ query. Compartilhar este post Link para o post Compartilhar em outros sites
theteo 0 Denunciar post Postado Março 24, 2013 e no caso de nao terem o mesmo tipo ? pois o número de campos é igual , mas o tipo diferente. c.nome_contrib <> m.mat_destinatario Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 24, 2013 Converta a matricula para string, mas veja se o resultado vai ficar inteligivel, senao trabalhe com duas queries. Union se aplica a duas ou mais queries que tem resultado dados de natureza senelhante. Compartilhar este post Link para o post Compartilhar em outros sites
theteo 0 Denunciar post Postado Março 25, 2013 Motta, valeu ai pelas dicas. falta apenas um detalhe: Olha isso: $verifica = mysql_query("(select m.sms, m.data_sms, c.celular_contrib, c.nome_contrib from tbl_sms_contrib m, tbl_contribuintes c where c.id_contrib = m.id_contrib and m.id_serv = '$id_serv' and YEAR(m.data_sms) = '$ano') union (select m.sms, m.data_sms, s.celular_serv, m.mat_destinatario from tbl_sms_serv m, tbl_servidores s where s.matricula_serv = m.mat_destinatario and m.mat_remetente = '$matricula_serv' and YEAR(m.data_sms) = '$ano'"); Funciona bem, mais quando coloco o ORDER BY dá erro. $verifica = mysql_query("(select m.sms, m.data_sms, c.celular_contrib, c.nome_contrib from tbl_sms_contrib m, tbl_contribuintes c where c.id_contrib = m.id_contrib and m.id_serv = '$id_serv' and YEAR(m.data_sms) = '$ano') union (select m.sms, m.data_sms, s.celular_serv, m.mat_destinatario from tbl_sms_serv m, tbl_servidores s where s.matricula_serv = m.mat_destinatario and m.mat_remetente = '$matricula_serv' and YEAR(m.data_sms) = '$ano') order by m.data_sms DESC"); Obrigado mais uma vez. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 25, 2013 tente ... order by 2 DESC ... Compartilhar este post Link para o post Compartilhar em outros sites
theteo 0 Denunciar post Postado Março 25, 2013 Show de bola motta. Muito obrigado cara. Deu tudo certo. RESOLVIDO. Compartilhar este post Link para o post Compartilhar em outros sites