MySQL - consulta compleja de seleccion y actualizacion

 
Vista:

consulta compleja de seleccion y actualizacion

Publicado por free lance (1 intervención) el 06/09/2006 13:04:09
Hola a todos,

Esto que os presento es un infierno...

tengo una tabla "alquileres" donde los usuarios van creando listas de preferencias de productos, del tipo:

idreserva | idproducto | idusuario | orden | estado
1 34 25 1 1
2 123 25 2 1
3 234 3 1 1

el campo "orden" establece las preferencias del usuario (el orden en el que prefiere recibir sus productos en caso de que estos estén disponibles)
el campo "estado" indica que está pendiente de ser procesado.
.
los "idproducto" se leen de la tabla "productos" donde el idproducto que se recoge en "alquileres" es un producto de referencia, en el sentido de que de ese producto cuelgan las unidades de productos disponibles con sus distintas caracteristicas , (idestado = disponible, no disponible, etc...) , ejemplo:

idproducto | nombre_producto | descripcion | padre | idestado |
34 producto 1 bla, bla... 0 0
35 producto 2 34 1

la movida es la siguiente:

en un momento determinado (tarea cron por ejemplo) se tiene que crear un listado, o serie de registros, llamalo x... con, digamos las "selecciones del día". esto es
que en base al "idreserva" (que hace las veces de indicador de fecha/hora de solicitud al ser un id autoincremental), si está activo ("estado=1 o estado=0"),
y en base a estos dos criterios buscar un "idproducto hijo" del de referencia, mirar que su "idestado" le permita ser procesado y asignarlo
al "idusuario" que le corresponda. este "momento determinado" tiene que alterar el estado de los campos de la tabla "alquileres",
es decir: pasar el estado a "estado=0" puesto que ya se procesó (si habia unidades cuyo idestado lo permitan) y a su vez cambiar el "idestado"
en la tabla "productos" del producto (por ejemplo a idestado=2 -no disponible- )que haya sido asignado a esta usuario.

Si alguien puede arrojar algo de luz sobre este infierno se lo agradecería. Hasta la fecha he trabajado con las tipicas consultas Select y esto
se me queda un poco grande...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder