gpt4 book ai didi

mysql - 仅当 x 行存在时,添加另一行 SQL

转载 作者:行者123 更新时间:2023-11-29 07:28:33 26 4
gpt4 key购买 nike

如果没有例子,我就无法很好地表达我的问题,所以我的谷歌搜索并不是很成功。

我有一个包含列的完成表

activity_id | learner_id | completed date

我想要获取包含 Activity_ids 1、2 和 3 的 learner_ids 列表。

对于上下文,因此我可以为所有事件 ID 为 4 的学习者添加事件完成行,但仅限于已完成 1、2 和 3 的学习者。我不知道如何获取我需要的数据!

最佳答案

我认为您没有用您的示例很好地解释它。

I want to get a list of learner_ids where activity_ids 1, 2 and 3 exist

如何执行此操作取决于表的结构。假设 learner_id 和 Activity_id 存在唯一约束,那么您可以简单地执行此操作:

SELECT learner_id
FROM yourtable
WHERE activity_id IN (1,2,3)
GROUP BY learner_id
HAVING COUNT(*)=3

如果您没有唯一约束,那么您需要使用:

HAVING COUNT(DISTINCT activity_id)=3

其效果如何取决于参与所有三项事件的人数与缺少或更多事件的人数相比。在某些情况下,这可能会快得多:

SELECT DISTINCT a.learner_id
FROM yourtable a
, yourtable b
, yourtable c
WHERE a.learner_id=b.learner_id
AND a.learner_id=c.learner_id
AND a.activity_id=1
AND b.activity_id=2
AND c.activity_id=3
;

关于mysql - 仅当 x 行存在时,添加另一行 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33610240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com