Problema ao mostrar a última publicação de usuários em query

  • Autor Autor pa3lo022
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
P

pa3lo022

Gamma
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Hola a todos, estoy trabado con una query que no debería ser tan difícil pero no puedo solucionarla.

Inserir CODE, HTML ou PHP:
SELECT u.iduser, u.name, u.lastname, u.photo, c.idcolumna, c.title, c.active, c.publicated
            FROM users u
            INNER JOIN columnistas c
            ON  u.iduser = c.userid            
			WHERE c.active = 1            
            GROUP BY u.iduser 
            ORDER BY c.idcolumna DESC

Necesito agrupar los mismos iduser y que me muestre su ultima publicacion, esta query me devuelve un regitro pero me devuelve el primero y no el último.

Alguien me puede dar una mano porfa.

Muchas gracias
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Creo, por la información que das, que te falta ordenar por la fecha de publicación para ver la última publicación. Puede que esto te funcione:

Inserir CODE, HTML ou PHP:
SELECT u.iduser, u.name, u.lastname, u.photo, c.idcolumna, c.title, c.active, c.publicated
            FROM users u
            INNER JOIN columnistas c
            ON  u.iduser = c.userid            
            WHERE c.active = 1            
            GROUP BY u.iduser 
            ORDER BY c.idcolumna DESC[COLOR="#FF0000"], c.publicated DESC[/COLOR]
 
Prueba lo que dice astillazo y si no te funciona manda un print_r de la respuesta que obtienes para ver como tienes la estructura aunque deberia funciona ordenando por publicacion
 
Creo, por la información que das, que te falta ordenar por la fecha de publicación para ver la última publicación. Puede que esto te funcione:

Inserir CODE, HTML ou PHP:
SELECT u.iduser, u.name, u.lastname, u.photo, c.idcolumna, c.title, c.active, c.publicated
            FROM users u
            INNER JOIN columnistas c
            ON  u.iduser = c.userid            
            WHERE c.active = 1            
            GROUP BY u.iduser 
            ORDER BY c.idcolumna DESC[COLOR="#FF0000"], c.publicated DESC[/COLOR]

Gracias por tu respuesta, lo hice así, bah en realidad lo ordene por idcolumna, pero el problema es que me trae todos los registros y yo solo necesito el ultimo, no se si me explico?
 
Gracias por tu respuesta, lo hice así, bah en realidad lo ordene por idcolumna, pero el problema es que me trae todos los registros y yo solo necesito el ultimo, no se si me explico?

Pues fácil entonces, según entiendo te trae una lista y solo quieres el primer registro de esa lista. Entonces sería lo siguiente:
Inserir CODE, HTML ou PHP:
SELECT u.iduser, u.name, u.lastname, u.photo, c.idcolumna, c.title, c.active, c.publicated
            FROM users u
            INNER JOIN columnistas c
            ON  u.iduser = c.userid            
            WHERE c.active = 1            
            GROUP BY u.iduser 
            ORDER BY c.idcolumna DESC, c.publicated DESC
            [COLOR="#FF0000"]LIMIT 1[/COLOR]
 
Pues fácil entonces, según entiendo te trae una lista y solo quieres el primer registro de esa lista. Entonces sería lo siguiente:
Inserir CODE, HTML ou PHP:
SELECT u.iduser, u.name, u.lastname, u.photo, c.idcolumna, c.title, c.active, c.publicated
            FROM users u
            INNER JOIN columnistas c
            ON  u.iduser = c.userid            
            WHERE c.active = 1            
            GROUP BY u.iduser 
            ORDER BY c.idcolumna DESC, c.publicated DESC
            [COLOR="#FF0000"]LIMIT 1[/COLOR]

Claro pero con el LIMIT 1 no me traeria el resto, es decir, por ejmplo tengo 5 usuario registrados y cada uno tiene 4 registros, yo quiero traer todos los usuario sin que se repitan pero solo con las ultimas publicaciones de cada uno.
 
Claro pero con el LIMIT 1 no me traeria el resto, es decir, por ejmplo tengo 5 usuario registrados y cada uno tiene 4 registros, yo quiero traer todos los usuario sin que se repitan pero solo con las ultimas publicaciones de cada uno.

Vale, ya porque soy un motivado :S creo que esta puede ser la solución (sin poder probarlo está pasable):
Inserir CODE, HTML ou PHP:
SELECT u.iduser, u.name, u.lastname, u.photo, c.idcolumna, c.title, c.active, [COLOR="#FF0000"]MAX(c.publicated)[/COLOR]
            FROM users u
            INNER JOIN columnistas c
            ON  u.iduser = c.userid            
            WHERE c.active = 1            
            GROUP BY u.iduser 
            ORDER BY c.idcolumna DESC, c.publicated DESC
 
[MENTION=121971]pa3lo022[/MENTION] probaste esta última solución? te funcionó?

Vale, ya porque soy un motivado :S creo que esta puede ser la solución (sin poder probarlo está pasable):
Inserir CODE, HTML ou PHP:
SELECT u.iduser, u.name, u.lastname, u.photo, c.idcolumna, c.title, c.active, [COLOR="#FF0000"]MAX(c.publicated)[/COLOR]
            FROM users u
            INNER JOIN columnistas c
            ON  u.iduser = c.userid            
            WHERE c.active = 1            
            GROUP BY u.iduser 
            ORDER BY c.idcolumna DESC, c.publicated DESC
 
[MENTION=121971]pa3lo022[/MENTION] probaste esta última solución? te funcionó?

Hola Perdon que no conteste si si, me funciono muy bien

muchisimas gracias por la ayuda
 
Voltar
Topo