我有一个带有person
个表的MySQL数据库,我在其中存储用户的个人详细信息.每个用户都属于一个组,所以我有另一个member_group
表,其中我根据他们的组ID存储他们的用户ID,以及他们的in_group_begin
日期和(最终)他们的in_group_end
日期.
当用户在组中时,in_group_end值为NULL.当他们离开该组时,它将填充离开日期.然后,它们可能会永远消失,或者只是移动到另一个组,从而需要在member_group
表中增加一行.
- 因此,刚刚加入的汤姆可能在
member_group
人中有一项记录in_group_end
值为空的表. - 迪克可能已经在这里有一段时间了,在
member_group
表中有四条记录,其中 除最新版本外,所有版本中填充的值均为in_group_end
. - 哈里已经离开了-他是
member_group
表中的两条记录,in_group_end
列中填充了一个值 对他们所有人来说.
我现在希望查询Person表并返回我的用户的列表,如果是当前用户,则返回他们当前的组ID;如果是过go 的用户,则返回他们所在的最后一个组ID.
我假设这可以在子查询中解决,但我不确定如何排序(例如ORDER BY (in_group_end = NULL) DESC, in_group_end DESC
)和GROUP BY,这无论如何都会预先执行.member_group
表有一个自动递增的tbl_id
字段,因此可能会在MAX(tbl_id)
上进行某种进一步的联接或其他操作?
这个查询会是什么样子的?如果有任何帮助,我很感激.