gpt4 book ai didi

mysql - 使用开放式成员资格查询日期的组成员资格

转载 作者:行者123 更新时间:2023-11-29 04:14:45 24 4
gpt4 key购买 nike

给定以下用于跟踪给定组成员的表结构:

+----+----------+----------------+--------------+  
| id | group_id | in_group_begin | in_group_end |
+----+----------+----------------+--------------+
| 1 | 10 | 2019-01-01 | 2019-02-01 |
| 1 | 11 | 2019-02-02 | 2019-03-01 |
| 1 | 12 | 2019-03-01 | NULL |
| 2 | 10 | 2019-01-01 | NULL |
+----+----------+----------------+--------------+

(其中 in_group_end 为 NULL 表示这是他们当前的组)

我如何形成一个查询来告诉我,例如,每个成员在给定日期关联的是什么 group_id

... in_group_end IS NULL 会给我他们当前的组,不一定是他们所在的组
... in_group_end IS NULL OR in_group_end >= '{$date_str}' 可以给我多个选项

理想情况下,我想要一些我可以在连接查询中使用的东西,例如用一张表存储一个人的姓名、地址等,我希望从中只返回一行。

JOIN 中的某种 IF stmt 会这样做吗?或子查询中的 GROUP

最佳答案

考虑以下逻辑,它将找到 2019-01-15 的所有匹配项:

SELECT group_id
FROM yourTable
WHERE
'2019-01-15' >= in_group_begin AND
('2019-01-15' <= in_group_end OR in_group_end IS NULL);

WHERE 子句认为输入日期是匹配的,如果它位于开始日期和结束日期之间或者它大于开始日期并且没有结束日期.此外,编写的 WHERE 子句可以使用索引。

关于mysql - 使用开放式成员资格查询日期的组成员资格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57977331/

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