有一张任务进度表,对应某个用户的某个任务(task)是否完成
task只有123,而且表里如果存在某个用户,则一定存在他的三条任务记录。
现在要查询三个任务都完成的人数,怎么查询效率最高?
id | user_id | task | status |
---|---|---|---|
1 | 1 | 1 | 0 |
2 | 1 | 2 | 1 |
3 | 1 | 3 | 0 |
4 | 2 | 1 | 1 |
5 | 2 | 2 | 1 |
6 | 2 | 3 | 1 |
7 | 3 | 1 | 0 |
8 | 3 | 2 | 1 |
9 | 3 | 3 | 1 |
有一张任务进度表,对应某个用户的某个任务(task)是否完成
task只有123,而且表里如果存在某个用户,则一定存在他的三条任务记录。
现在要查询三个任务都完成的人数,怎么查询效率最高?
id | user_id | task | status |
---|---|---|---|
1 | 1 | 1 | 0 |
2 | 1 | 2 | 1 |
3 | 1 | 3 | 0 |
4 | 2 | 1 | 1 |
5 | 2 | 2 | 1 |
6 | 2 | 3 | 1 |
7 | 3 | 1 | 0 |
8 | 3 | 2 | 1 |
9 | 3 | 3 | 1 |
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
5 回答1.4k 阅读
select user_id from test where status=1 group by user_id having count(*)=3