Ir para conteúdo

POWERED BY:

Arquivado

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

theteo

busca + order by

Recommended Posts

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

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

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

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

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

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

×

Informação importante

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