你好,我有一张这样的 table :
SN | User | is_borrowed | date
105 | 1 | 1 |2019-1-1
105 | 1 | 0 |2019-2-1
105 | 1 | 1 |2019-3-1
106 | 2 | 1 |2019-4-1
107 | 1 | 1 |2019-5-1
106 | 2 | 0 |2019-6-1
106 | 2 | 1 |2019-8-1
107 | 1 | 0 |2019-9-1
107 | 2 | 1 |2019-10-1
想要的输出是显示借用(未归还)和 user=1 的内容:
SN | User | is_borrowed | date
105 | 1 | 1 |2019-3-1
User=2 和借用(不归还)的输出:
SN | User | is_borrowed | date
106 | 2 | 1 |2019-8-1
107 | 2 | 1 |2019-10-1
总而言之,我想要一个当前借用但未归还给每个用户的设备列表。可悲的是,我什么也没想到:/
最佳答案
查看您的预期结果似乎您正在寻找 SN 的最大(日期),用户 where is_borrowed = 1
select SN, user, is_borrowed, max(date)
from my_table
where is_borrowed = 1
group by SN, user, is_borrowed
或者对于实际借用的设备
Select * from my_table m
inner join t (
select SN, is_borrowed, max(date) max_date
from my_table
where is_borrowed = 1
group by SN, is_borrowed
) t on t.SN = m.SN AND t.max_date = m.date
关于mysql - 为特定值选择每个最新的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54026881/