Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/06/2008, 02:38
martaGarmilla
 
Fecha de Ingreso: marzo-2008
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
consulta mysql.. sencilla pero no me sale :S

Hola, asi tengo las tablas:

ENCUESTAS:
idEncuesta
nombreEncuesta
...

PREGUNTAS:
idPregunta
idEncuesta

...

RESPUESTASPOSIBLES:
respuestaId
preguntaId

...

RESPUESTASFINALES:
idReFinal
idRePosible
idUsuario

...

y otra tabla USUARIOS:
idUsuario

username
...

Quiero seleccionar los campos de "encuestas" donde idUsuario de la tabla "respuestasfinales" no sea igual a 'x', que es un int como por ejemplo 1.

Es decir, conseguir las encuestas, en las que cierto usuario aun no haya realizado ninguna respuesta final.

He intentado lo siguiente:

SELECT e.idEncuesta
FROM encuestas e, preguntas p,respuestasposibles rp, respuestasfinales rf
where e.idEncuesta=p.idEncuesta
and p.idPregunta=rp.preguntaId
and rp.respuestaId = rf.idRePosible
and rf.idUsuario = '1';

y esta consulta me devuelve las que ha REALIZADO, pero quiero las que aun le quedan por hacer, es decir:

[ENCUESTAS] - [ENCUESTAS REALIZADAS] = [ ENCUESTAS QUE FALTAN POR HACER A ESE USUARIO]

si en la ultima linea hago: and rf.idUsuario != '1';
no me sale.. devuelve encuestas pero no lo que quiero/deberia.

Imagino que no debe ser muy complicado.. es hacer esa resta de subconjuntos, pero no me acuerdo como podria hacerlo..

ayuda por favor. Gracias :)