select data on base of comparing multiple values between two columns in same table
There are many solutions for this kind of problem (it's called relational division). 

The most simple ways to write it would be either by self-joining the table (4 times) or with a GROUP BY and HAVING clause:

SELECT user_id
FROM users_responses
WHERE (question_id = 1 AND response_id = 1)
   OR (question_id = 3 AND response_id = 6)
   OR (question_id = 2 AND response_id = 4)
   OR (question_id = 3 AND response_id = 7)
GROUP BY user_id
HAVING COUNT(DISTINCT question_id, response_id) = 4 ;


If there is a UNIQUE constraint on (user_id, question_id, response_id), you can simplify the HAVING clause to:

HAVING COUNT(*) = 4 ;