记录中的sql查询问题

wfveoks0  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(223)

我使用以下查询在记录中遇到问题

SELECT user_id FROM temp 
  WHERE 
    (value = 1 AND field_id = 11) AND 
    value = 1 AND field_id = 12

这是table。

我应该得到101个用户名的记录。
有什么想法吗?

m528fe3b

m528fe3b1#

您需要按用户聚合:

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;
hi3rlvi2

hi3rlvi22#

尝试使用以下sql从临时值中选择不同的用户id,其中值=1和(字段id=12或字段id=11)

uwopmtnx

uwopmtnx3#

你也可以使用 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;

相关问题