我想为用户费率选择上次创建的字段。下面是我尝试选择数据的表截图的链接。
我的查询是
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
,结果是
含量 创建
dolor sit 2016-10-28 19:33:50
lorem ipsum 2016-10-28 19:33:49
如何修改我的查询以获得如下结果?
含量 创建
lorem ipsum 2016-10-28 19:33:49
答案 0 :(得分:1)
使用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;
在您的版本中,left join
不是必需的 - 它由where
子句转换为内连接。此外,我希望f.rate_id
始终匹配r.rate_id
,特别是如果您有正确声明的外键关系。即使fields
中没有记录(这似乎是您的意图),这也会返回一行。