![](/img/trans.png)
[英]How to select rows with specific condition within specific ranage in MySQL?
[英]how to select specific rows in some condition
我尝试编写一个查询,选择具有用户1和用户2所执行步骤的行,以及他们执行该步骤的总次数(即,如果用户1执行步骤1 3次,而用户2执行1次则计数应该显示4次。)
当我把条件设置为user_id = 1时,user_id = 2没有错误但它什么也没有返回,当它应该返回一些带有值的行时。
有表步,步骤和表步有列id,标题表step_taken有列id,user_id(谁执行步骤),step_id
我想找到一个步骤,即id为1,2的两个用户都希望将值作为count加上他们执行该步骤的次数。
例如,如果用户id 1执行了2次命名冥想,而用户id 2执行了3次命名冥想,我想要查找的结果应该如下所示;
------------------------------
title | number_of_times
------------------------------
meditation| 5
------------------------------
这是我的SQL查询
select title, count(step_taken.step_id)as number_of_times
from step join step_taken
on step.id = step_taken.step_id
where user_id = 1 and user_id=2
group by title;
它什么都不返回,但它应该返回user1和user 2所做的一些步骤。
当我只用user_id = 1或user_id = 2写同样的东西时,它会显示所选信息
如何修复我的代码,以便显示我想要的信息?
提前致谢 :)
user_id不能同时为1和2。 您需要第二个用户表。 然后根据您的标准加入那些并计算:
select title, count(u1.id) + count(u2.id) as number_of_times
from step u1 join step u2
on u1.id = u2.id
where u1.user_id = 1 and u2.user_id=2
group by title;
注意:无法判断表标题是什么,或者step_taken
的目的是step.id
是相同的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.