Ver Mensaje Individual
  #8 (permalink)  
Antiguo 05/07/2008, 05:03
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 9 meses
Puntos: 300
Respuesta: Duda para realizar consulta

Cita:
Iniciado por layker Ver Mensaje
tengo una tabla para ver los usuarios online, formada por |usuario|tiempo| si el usuario esta en la tabla kiere dcir k esta conectado y si no, no lo sta.
coomo puedo ordenadar la lista de amigos que me muestra con esa consulta en relacion a si estan conectados.
es decir ke me muestre primero los ke estan online y luego los demas.
muxas gracias
Usando left join y jugando con el NULL generado en aquellos que no están en conexion (así he llamado a la tabla). Además te he puesto el campo de activo. Observa que ordena en primer lugar por el criterio de estado (activo/inactivo), y activo está antes que inactivo en el orden alfabético, y luego he ordenado por otro campo que quieras que sirva de orden, en este caso el user que le corresponda.

Código:
SELECT CASE WHEN user1 =1
THEN user2
ELSE user1
END AS amigo, IF( c.usuario IS NULL , 'activo', 'inactivo' ) AS estado
FROM amigos a
LEFT JOIN conexion c ON ( a.user1 = c.usuario
OR a.user2 = c.usuario ) 
WHERE a.user1 =1
OR a.user2 =1
ORDER BY IF( c.usuario IS NULL , 'activo', 'inactivo' ) , CASE WHEN user1 =1
THEN user2
ELSE user1
END