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

Cruzar 2 consultas sobre la misma tabla

Estas en el tema de Cruzar 2 consultas sobre la misma tabla en el foro de Mysql en Foros del Web. Hola, tengo una tabla del estilo: Código HTML: id usuario op_id recurso_id fecha_fin ---------------------------------------------------------------------------- 1 50 1 1001 2011-06-07 11:59:33 2 50 6 3101 2011-06-07 ...
  #1 (permalink)  
Antiguo 09/06/2011, 03:13
Avatar de Biopepe  
Fecha de Ingreso: abril-2003
Ubicación: Bilbao
Mensajes: 63
Antigüedad: 21 años
Puntos: 0
Cruzar 2 consultas sobre la misma tabla

Hola,

tengo una tabla del estilo:

Código HTML:
   id     usuario        op_id      recurso_id       fecha_fin
----------------------------------------------------------------------------
   1         50                1              1001         2011-06-07 11:59:33
   2         50                6              3101         2011-06-07 12:58:33
   3         21               45             1000         2011-06-08 09:50:34
   4         10                7              3101         2011-06-08 11:39:09
   5        315              10             1002         2011-06-09 01:12:00
   6         10                8              7001         2011-06-09 11:33:09
  ...        ....              .....                    .....
Quiero hacer una consulta con los últimos 3 registros de un usuario.
Condiciones:
comprobar que op_id de cada registro sea la última op_id que se ha trabajado en ese recurso_id.
Ejemplo:
Resultado de la consulta (con esos 6 registros):
Código HTML:
   id     usuario        op_id      recurso_id       fecha_fin
----------------------------------------------------------------------------
   1         50                1              1001         2011-06-07 11:59:33
   3         21               45             1000         2011-06-08 09:50:34
   4         10                7              3101         2011-06-08 11:39:09
   5        315              10             1002         2011-06-09 01:12:00
   6         10                8              7001         2011-06-09 11:33:09
Falta el registro con id = 2 porque en el registro 4 vemos que otro usuario a estado después en el recurso_id = 3101 con otra op_id.

Tengo los 3 últimos registros de un usuario, pero no se como cruzar esos datos con la otra condición.

La otra solución sería crear una tabla con las últimas op_id por recurso_id y cruzar los últimos 3 registros de un usuario con esa tabla.

¿Alguna sugerencia/ayuda?
Gracias

Un saludo
  #2 (permalink)  
Antiguo 09/06/2011, 05:47
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Cruzar 2 consultas sobre la misma tabla

Que utilices un MAX(fecha_fin) y lo agrupes por recurso_id y op_id, así tendrás unicamente los últimos.
  #3 (permalink)  
Antiguo 10/06/2011, 00:01
Avatar de Biopepe  
Fecha de Ingreso: abril-2003
Ubicación: Bilbao
Mensajes: 63
Antigüedad: 21 años
Puntos: 0
Respuesta: Cruzar 2 consultas sobre la misma tabla

No termino de entenderte.
Con lo que comentas tendría (creo entender) el último op_id que se ha realizado en un recurso_id. Con eso tendría "la otra parte" de la ecuación. Me faltaría juntar las dos partes.

La consulta tiene que devolver como máximo los 3 últimos registros de un usuario (ORDER BY fecha_fin DESC LIMIT 3), siempre y cuando cada uno de esos registros cumpla que la op_id coincida con la última op_id que ha hecho cualquier usuario sobre el recurso_id.

Tengo lo primero y tengo lo último pero no veo por donde tirar para cruzar los dos.

Gracias.

Etiquetas: 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 21:00.