繁体   English   中英

如何在某些条件下选择特定的行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM