MySQL - 根据具有相同 user_id 的其他行的列值按 user_id 选择行

标签 mysql sql

我有一个复杂的请求,所以我简化了它,希望我能很好地解释它。

我有一个订阅表:

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/

相关文章:

mysql - 如何使用SQL查找unfollow页面?

php - 使用触发器停止向不工作的表插入 MySQL

Mysql 控制台备份导入在正确的目录和正确的密码下失败

mysql - 我应该使用哪种哈希算法来检查文件重复性

php - Mysql数据备份转换成字符串

php - Laravel DB get() 很慢

php在stmt准备和执行语句后获取结果

php - Mysql - 找不到特定记录的默认记录

mysql - SQL:未知列 'items.id'关系查询

python - 使用 Python 连接到 Microsoft SQL 服务器