Ver Mensaje Individual
  #10 (permalink)  
Antiguo 18/11/2014, 11:39
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: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta en dos tablas (ordenación)

Perdón, pero yo tomé la query de tu último post, y ese ORDER BY no debe ir alli.
¿Eso te quedó claro?
Si lo pones dispara un error de sintaxis.

En cada consulta SELECT sólo puede haber un único ORDER BY. Sólo puede haber otro si está contenido en una sunconsulta, que no es tu caso.

La query, limpiando basura, debería quedar así:
Código MySQL:
Ver original
  1. SELECT `u`.*
  2. FROM `bgs_base_user` u
  3.     INNER JOIN `bgs_base_user` BUT ON U.`id` = BUT.`id`
  4.     LEFT JOIN `bgs_base_user_suspend` BS ON BS.`userId` = BUT.`id`
  5.     INNER JOIN `bgs_base_user_online` O  ON U.`id` = O.`userId`)
  6.     LEFT JOIN `bgs_base_avatar` A ON O.`id` = A.`userId`
  7. WHERE BS.`id` IS NULL
  8. ORDER BY O.`activityStamp` DESC
  9. LIMIT ?, ?

Ahora bien, tu planteo inicial requiere de condiciones que pueden ser incompatibles en la consulta:
Cita:
Se trata de listar todos los usuarios de la tabla `base_users` ordenados por `activityStamp` pero en el resultado se han de incluir en primer lugar todos los campos de `base_avatars` que tengan `userId`= `id` ordenados también por el `activityStamp` de la tabla 1.
Para visualizarlo mejor necesitamos ver el resultado de la consulta pura:

Código MySQL:
Ver original
  1. FROM `bgs_base_user` u
  2.     INNER JOIN `bgs_base_user` BUT ON U.`id` = BUT.`id`
  3.     LEFT JOIN `bgs_base_user_suspend` BS ON BS.`userId` = BUT.`id`
  4.     INNER JOIN `bgs_base_user_online` O  ON U.`id` = O.`userId`)
  5.     LEFT JOIN `bgs_base_avatar` A ON O.`id` = A.`userId`
  6. WHERE BS.`id` IS NULL
  7. ORDER BY O.`activityStamp` DESC
  8. LIMIT ?, ?
A poartir de eso podriamos analizar mejor la composicion de la query, que no sería de extrañar que corresponda haber un UNION para cumplirla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 18/11/2014 a las 11:47