我有一个复杂的请求,所以我简化了它,希望我能很好地解释它。
我有一个订阅表:
ID | Timestamp | User Id | Status
-----+---------------------+---------+---------
1 | 2013-06-14 16:39:23 | 1 | inactive
2 | 2013-11-20 10:18:17 | 1 | active
3 | 2013-06-14 16:39:23 | 2 | inactive
4 | 2014-03-01 17:18:26 | 3 | active
我想查询此表以查找状态为非事件
的订阅,以及不也具有事件
订阅的订阅。
例如,这应该返回订阅 ID 3,而不是订阅 ID 1 - 因为 ID 1 的用户有一个事件
订阅(即订阅 ID 2)。
最佳答案
以下查询应该可以解决问题:
select a.id from
table as a
inner join
(
select user_id, max(id)
from table
group by user_id
) as b
on (a.id=b.id and a.status='inactive')
关于MySQL - 根据具有相同 user_id 的其他行的列值按 user_id 选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22123019/