Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/04/2012, 14:55
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 17 años
Puntos: 300
Respuesta: Mostrar datos que NO aparecen en otra relacion

¿Cómo guardas esos datos de los que hablas en las tablas? Me refiero a esto:
Imagino que las acciones y datos son limitados y se recogen en su totalidad en la tabla RelacionAccionDato.
Creo que tu problema es haber separado esos valores en la tabla RelacionRolAccionDato. Te hubiera bastado con un idAccionDato en la tabla RelacionAccionDato, que luego utilizarías en la tabla RelacionRolAccionDato, puesto que una acción es siempre una acción sobre un dato y ya tienes un listado preestablecido de los mismos, ¿es así? Administrar usuarios es una acción sobre un dato concreto, igual que visualizar pedidos. Si esa accion sobre dato tuviera ya un identificador te resultaría más fácil encontrar lo que quieres. No obstante, si te he entendido bien quieres encontrar las acciones sobre datos que no realiza un rol. No lo he probado, pero, si lo he entendido bien, tal vez algo como esto podría servirte:
SELECT rad.idaccion, rad.iddato FROM RelacionaAccionDato rad LEFT JOIN (SELECT rrad.idaccion, rrad.iddato FROM RelacionAccionDato rrad WHERE rrad.idrol = rolquebusques)t1 ON (rad.idaccion = t1.idaccion AND rad.iddato = t1.iddato) WHERE t1.idaccion IS NULL OR t1.iddato IS NULL