我有 2 张桌子:
- 免用户
- 团队名册
userfree 表具有以下列
- uniqueid - 此项目的 A_I 唯一 ID
- userid - 用户 ID 号
- id - 由日历生成的每个用户事件的唯一 ID(因此,如果用户有 5 次空闲时间,它将是 (1-5)
- 开始 - 开始时间日期用户是免费的
- end - end timedate 用户空闲
teamroster 表具有以下列
- id - 此项目的 A_I 唯一 ID
- teamid - 他们所属团队的 ID
- userid - 该团队中用户的 ID
我需要做的是找到同一团队中用户的所有重叠时间。在我添加团队内容之前,我有一些 sql 来查找时间重叠的用户:
SELECT dr1.uniqueid as ida, dr2.uniqueid as idb, dr1.userid as userida, dr2.userid as useridb, dr2.start, dr2.end
FROM `userfree` dr2
INNER JOIN `userfree` dr1
WHERE
dr2.start >= dr1.start AND
dr2.start <= dr1.end AND
dr1.uniqueid != dr2.uniqueid AND
dr1.userid != dr2.userid
ORDER BY dr2.start
我尝试了几件事,但我认为我的做法是错误的,我想我会在这里问。此外,我的方法可能效率较低。