Ver Mensaje Individual
  #8 (permalink)  
Antiguo 15/09/2012, 05:09
Avatar de gnzsoloyo
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: ORDER By Invalida a GROUP en Mysql

Cita:
Respecto al cuadro de dialogo que usas para poner codigos Sql, podrias decirme cual es? por que cualquiera que use, me sale solo la caja de texto (txtarea) y ahi no se ve bien como el tuyo.
¿Y no has visto el combo donde dice "Highlight"?
Cita:
nisiquiera estoy seguro si se pronuncia yavascript o simplemente de forma literal java
JavaScript es una cosa y Java es otra. Estarán emparentados, pero no se usan ni para lo mismo, ni en el mismo contexto.
Por lo demás el cómo se pronuncien es irrelevante para la escritura y depende de los modismos coloquiales de quienes trates. Yo lo escucho de ambas formas en los mismos sitios.
Cita:
Y si probé como me dijo jurena en PhpMyadmin, y siempre me daba el mismo resultado erroneo, pidiendo que las tablas tienen que tener tambien alias o algo asi, que no comprendia, de todos modos creo que se referia a lo que tu haz hecho, poner una abreviatura (o alias) a las tablas.
Mmmm... sí.
Es un olvido lamentable.
Toda tabla derivada (aquella que es resultado de una consulta y que es fuente de otra consulta mayor, debe forzosamente tener su propio alias. Es algo general en todos los DBMS.
Así que el código sería:
Código MySQL:
Ver original
  1.     (SELECT
  2.         NA.action_in,
  3.         NA.action_nick_id,
  4.         NA.action_id,
  5.         NA.action_fecha,
  6.         U.nick,
  7.         U.sexo,
  8.         U.avatar
  9.     FROM news_acciones NA INNER JOIN usuarios U ON U.id = NA.action_nick_id
  10.     WHERE
  11.         NA.action_nick_id IN($amisql)
  12.         AND (NA.action_in='tema musical'
  13.         OR NA.action_in='dedicatoria'
  14.         OR NA.action_in='upload-mp3'
  15.         OR NA.action_in='add-mp3'
  16.         OR NA.action_in='add-playlist' )
  17.     ORDER BY NA.action_fecha DESC) T1
  18. GROUP BY action_nick_id
donde "T1" es el alias de la tabla.
Presta atención a que eliminé el alias del campo del ORDER BY, porque en ese contexto ese alias deja de ser accesible.

REspecto a los resultados, sería buena idea que capturaras una muestra de las tablas de datos y de el resultado de la consulta, lo postees aquí y podamos ver a qué te refieres con que no sale lo esperado.
Finalmente: El LIMIT tiene un impacto algo complicado cuando trabajas con estas subconsultas. Ponlo sólo en la exterior, no en la interior.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)