我有两张桌子:
User:
ID, Name
UserChanges:
ID, UserID, ChangeDate
每次用户更改其名称时,都会在UserChanges中插入一个新行。 所以UserChanges包含几行具有相同UserID的行。
我想获取至少更改两次的User.name列表,其中一项修改是在2013年12月15日之后。
因此,首先选择UserChanges表中多次引用的所有用户。 在此列表中,选择在2013年12月15日之后更改的人。
答案 0 :(得分:4)
由用户分组,然后计算更改,如果其中一个在指定日期或之后
select u.name
from user u
inner join userchanges c on c.userid = u.id
group by u.name
having count(c.id) > 1
and sum(case when ChangeDate >= '2013-12-15' then 1 else 0 end) > 0