У меня проблема с записью, используя следующий запрос
SELECT user_id FROM temp WHERE (value = 1 AND field_id = 11) AND value = 1 AND field_id = 12
Вот таблица.
Я должен получить запись 101 user_id.
Есть идеи по этому поводу?
попробуйте этот sql выбрать DISTINCT user_id из temp, где value = 1 и (field_id = 12 или field_id = 11)
Вы также можете использовать where предложение:
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;
Вам нужно агрегировать по пользователю:
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;