Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2013, 10:59
malmonacid
 
Fecha de Ingreso: enero-2013
Mensajes: 16
Antigüedad: 11 años, 3 meses
Puntos: 0
Lista ordenada bajo dos criterios, tres tablas involucradas

Hola a todos.

Ando nuevamente por estos lados solicitando ayuda y agradezco de antemano su buena disposición.
Mi consulta comienza con que tengo la tabla "tblTrabajos" con la siguientes estructura:

idTrabajo int(11) NOT NULL auto_increment,
idTrabajador int(11) NOT NULL,
idUsuario int(11) NOT NULL,
dateFecha_trabajo timestamp NOT NULL,

Necesito obtener la "tblTrabajos" ordenada de manera DESC por cantidad de evaluaciones, y a continuación por cantidad de votos, es decir a igual cantidad de evaluaciones mandan los votos. Si no tiene evaluaciones se ordena por la cantidad de votos. Si las evaluaciones y votos son iguales manda la fecha de inserción del registro (dateFecha_trabajo). Las otras dos tablas tienen la sgte. estructura:

"tblEval_trabajos":

idEval int(11) NOT NULL auto_increment,
idTrabajo int(11) NOT NULL,
idUsuario_eval int(11) NOT NULL,
intEval int(1) NOT NULL,
dateFecha_voto timestamp NOT NULL,

"tblVotos_trabajos":

idVoto int(11) NOT NULL auto_increment,
idTrabajo int(11) NOT NULL,
idUsuario_voto int(11) NOT NULL,
intVoto int(1) NOT NULL,
dateFecha_voto timestamp NOT NULL,

Las otras condiciones importantes son:
1.- Que sea para el "idTrabajador" que quiera. (WHERE idTrabajador= 'x').

2.- Considerando(sumando) la última evaluación y voto realizados por cada "idUsuario_eval" y "idUsuario_voto" , ya que estos pueden actualizar su voto cuantas veces quiera y estos quedan registrados en la misma tabla (sirve para conocer su comportamiento).

Acudo a ustedes porque sé que aquí puedo obtener la solución más eficiente. Por mi lado me ha quedado tan grande que ni siquiera una solución ineficiente me funciona, me refiero usando varios subconsultas anidadas.

Espero que se entienda y perdón por no usar código, si para alguien es mejor.

Gracias de antemano por su tiempo y ayuda.

Quedo atento a sus consultas y/o respuestas.

Saludos.