我知道标题很复杂,但情况如下:
我有一个这样的用户表:
id opened_at
32o 2/01/2018 00:00:00
和这样的用户组表:
user_id group_id
32o 29834jb
完整的小组表如下:
group_id group_ended_at
29834jb 1/14/2018 00:00:00
29834jb 2/14/2018 00:00:00
29834jb 3/14/2018 00:00:00
29834jb 4/14/2018 00:00:00
我想加入组的用户,但仅返回最小的group_ended_at
是更大的比opened_at
日期用户。
换句话说,我想要这个结果:
id opened_at group_id group_ended_at
32o 2/01/2018 00:00:00 29834jb 2/14/2018 00:00:00
我该怎么办?
我们可以基于您的尝试:仅将日期不等式条件添加到联接条件中,定义适当的group by
子句,您就在这里:
SELECT u.id, u.opened_at, u.group_id, MIN(g.group_ended_at)
FROM users u
LEFT JOIN groups g
ON u.group_id = g.group_id
AND g.group_ended_at > u.opened_at
GROUP BY u.id, u.opened_at, u.group_id
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句