Tengo una tabla con 2 columnas (ver a continuación). Un miembro puede tener múltiples respuestas a una pregunta:¿Cómo consultar una tabla de unión para que se cumplan varios criterios?
RESPONSES
---------
member_id INT
response_id INT
SAMPLE DATA
member_id -- response_id
1 -- 3
1 -- 5
2 -- 1
2 -- 5
2 -- 9
3 -- 1
3 -- 5
3 -- 6
Lo que necesito hacer es consultar la tabla para los miembros que cumplen con todos los criterios de respuesta. Por ejemplo, necesito seleccionar todos los miembros que tienen un RESPONSE_ID de 1 y 5. Estoy utilizando la siguiente consulta:
SELECT DISTINCT member_id
FROM responses
WHERE response_id = 1 AND response_id = 5
que se puede esperar para volver 2 y 3. Sin embargo, yo estoy haciendo nada de member_id devueltos. Usé EXPLAIN y muestra que hay un error en mi consulta. ¿Qué estoy haciendo mal?
Además, ¿existe una función similar a IN en la que se deben cumplir todos los criterios para que sea verdadera?
mi punto de vista, es necesario 'o' en lugar de 'y' allí. – hjpotter92
Su condición WHERE se aplica a cada fila individualmente. Como resultado, nunca puede ser cierto, porque una columna no puede ser igual a 1 y a 5 al mismo tiempo. –