Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

group by desc y order by desc

Estas en el tema de group by desc y order by desc en el foro de Mysql en Foros del Web. Hola amigos Tengo un pequeño problema con una sql Quiero hacer el group by desc y tb el order by desc. Lo hago asi pero ...
  #1 (permalink)  
Antiguo 15/09/2014, 05:52
 
Fecha de Ingreso: febrero-2014
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 0
group by desc y order by desc

Hola amigos
Tengo un pequeño problema con una sql
Quiero hacer el group by desc y tb el order by desc.
Lo hago asi pero no me funciona

SELECT * from tabla GROUP BY(id) desc ORDER by date desc limit 10


Alguna idea ?


Saludos
  #2 (permalink)  
Antiguo 15/09/2014, 07:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: group by desc y order by desc

¿Qué es lo que no te "funciona"?
Diciendo eso no nos estas aportando ninguna información relevante, además de ser inexacta.
En la query que pones no hay muchos erroes, salvo que aparentemente estás agrupando por la PK de la tabla... lo que termina devolviendo exactamente los mismos regisrtos qe si no estuviese.
Código MySQL:
Ver original
  1. FROM tabla
  2. LIMT 10
y
Código MySQL:
Ver original
  1. FROM tabla
  2. LIMT 10
Si "ID" es la pK, de la tabla, son semánticamente idénticas.

Explica qué es lo que obtienes y qué lo que deseas obtener, pero con un ejemplo real.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/09/2014, 10:41
 
Fecha de Ingreso: febrero-2014
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: group by desc y order by desc

Vale, me intentare explicar mejor.

quiero que me aparezcan los ultimos comentarios (esto lo consigo con order by date)
pero ademas quiero que si hay mas de un comentario escrito por el mismo usuario solo me muestre el mas reciente (por eso puse el group by)
De la manera que escribi el sql, me muestra los comentarios mas recientes (hasta aqui bien), y en el caso de que un usuario tenga mas de uno, me muestra el mas viejo en vez de el mas reciente.


SELECT * from comments GROUP BY(idu) ORDER by date desc limit 10


Saludos
Muchas gracias
  #4 (permalink)  
Antiguo 15/09/2014, 11:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: group by desc y order by desc

No se puede hacer en una consulta simple. Hay que obtenerlo en una subconsulta, por restricciones de sintaxis referentes al orden entre ORDER BY y GROUP BY:
Código MySQL:
Ver original
  1.   (SELECT *
  2.   FROM comments
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 15/09/2014, 12:26
 
Fecha de Ingreso: febrero-2014
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: group by desc y order by desc

Acabo de probar lo que me has puesto, y el group by ahora si me muestra solo uno y el mas reciente, pero el resto no me los ordena por date desc.

Gracias
saludos
  #6 (permalink)  
Antiguo 15/09/2014, 12:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: group by desc y order by desc

Postea un ejemplo de lo que dices de los datos.
Con la descripcion no alcanza para ver claramente el problema.

Una cosa: ¿La fecha la tienes como DATE, DATETIME, o... VARCHAR?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 15/09/2014, 13:06
 
Fecha de Ingreso: febrero-2014
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: group by desc y order by desc

tabla comments

id -> int
idu -> varchar
comment -> text
date -> date time

tabla usuarios

id -> int
idu -> varchar
nombre -> varchar
foto -> varchar

Código MYSQL:
Ver original
  1. SELECT * FROM (SELECT * FROM comments ORDER BY date DESC) t1 GROUP BY idu LIMIT 10
  2.  
  3. SELECT * from users WHERE idu='".$rcom['idu']."'

Cita:
Editado: Código de programacion no permitido en foros de BBDD.
saludos

Última edición por gnzsoloyo; 15/09/2014 a las 14:01
  #8 (permalink)  
Antiguo 15/09/2014, 14:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: group by desc y order by desc

En realidad lo que te pedí es que nos mostraras la tabla de datos, no una descripción de lo que tienes diseñado.
En cualquier caso, tienes un probable problema de sintaxis, por usar una palabra reservada (date) como nombre de columna.

Entonces probemos esto:
Código MySQL:
Ver original
  1.   (SELECT *
  2.   FROM comments
  3.   ORDER BY `date` DESC) t1

Muestranos el resultado de esa query, ejecutandola en phpMyadmin.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 17/09/2014, 04:26
 
Fecha de Ingreso: febrero-2014
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: group by desc y order by desc

Hola,
acabo de probar las dos maneras. Con las comillas y cambiando el nombre de la columna, pero sigue sin funcionar jeje
No se donde podra estar el problema.
Me tiene loco


saludos
  #10 (permalink)  
Antiguo 17/09/2014, 04:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: group by desc y order by desc

No funciona en que sentido?
¿Podrías poner una captura de pantalla del resultado?
Así sería más entendible.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 20/09/2014, 16:40
Avatar de junior1920  
Fecha de Ingreso: noviembre-2010
Ubicación: Tumán
Mensajes: 77
Antigüedad: 14 años
Puntos: 1
Información Respuesta: group by desc y order by desc

Cita:
Iniciado por RocoBox3000 Ver Mensaje
Vale, me intentare explicar mejor.

quiero que me aparezcan los ultimos comentarios (esto lo consigo con order by date)
pero ademas quiero que si hay mas de un comentario escrito por el mismo usuario solo me muestre el mas reciente (por eso puse el group by)
De la manera que escribi el sql, me muestra los comentarios mas recientes (hasta aqui bien), y en el caso de que un usuario tenga mas de uno, me muestra el mas viejo en vez de el mas reciente.


SELECT * from comments GROUP BY(idu) ORDER by date desc limit 10


Saludos
Muchas gracias
Y si modificas tus tablas por ejemplo

tabla comments

idc -> int
idu -> varchar
comments -> text
fecha -> date time

tabla usuario

idu -> varchar
nombre -> varchar
foto -> varchar


Código MySQL:
Ver original
  1.   (SELECT *
  2.   FROM comments
  3.   ORDER BY fecha DESC) t1

Ya lo ejecuté y muestra el comentario del ultimo usuario y con la fecha más actual ;)

Última edición por junior1920; 20/09/2014 a las 17:10

Etiquetas: desc, group, order, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:12.