我想选择最后创建的用户费率字段。下面是我尝试从中选择数据的表格屏幕截图的链接。
我的查询是
select fields.content, min(fields.creation_date) as created
from fields
left join rates
on fields.rate_id=rates.rate_id
where rates.user_id=4
group by fields.content
结果是
内容 已创建
多洛坐 2016-10-28 19:33:50
lorem ipsum 2016-10-28 19:33:49
如何修改我的查询以获得如下所示的结果?
内容 已创建
lorem ipsum 2016-10-28 19:33:49
最佳答案
使用order by
和limit
:
select f.*
from fields f left join
rates r
on f.rate_id = r.rate_id
where r.user_id = 4
order by f.creation_date asc
limit 1;
请注意,如果存在联系(两条记录具有相同的 creation_date
),那么这将任意选择一个。
另外,我怀疑你想要:
select f.*
from rates r left join
fields f
on f.rate_id = r.rate_id
where r.user_id = 4
order by f.creation_date asc
limit 1;
在您的版本中,左连接
不是必需的——它通过where
子句变成内连接。此外,我希望 f.rate_id
始终与 r.rate_id
匹配,特别是如果您有正确声明的外键关系。即使字段
中没有记录,这也会返回一行(这似乎是您的意图)。
关于mysql - 选择其他表列的最短日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40319845/