Я получаю проблему в записи, используя следующий запрос
SELECT user_id FROM temp
WHERE
(value = 1 AND field_id = 11) AND
value = 1 AND field_id = 12
Вот таблица.
Я должен получить запись 101 user_id.
Любая идея по этому поводу?
Вам необходимо агрегировать по пользователю:
SELECT user_id
FROM temp
GROUP BY user_id
HAVING
SUM(CASE WHEN value = 1 AND field_id = 11 THEN 1 ELSE 0 END) > 0 AND
SUM(CASE WHEN value = 1 AND field_id = 12 THEN 1 ELSE 0 END) > 0;
Вы также можете использовать where
:
select user_id
from table t
where value = 1 and field_id in (11, 12)
group by user_id
having count(distinct field_id) = 2;
попробуйте этот sql выбрать DISTINCT user_id из temp, где value = 1 и (field_id = 12 или field_id = 11)
OR
вместоAND
. В настоящее время вы фильтруете дляfield_id=11 and field_id=12
.