使用其他表格列

时间:2016-10-29 14:00:41

标签: mysql

我想为用户费率选择上次创建的字段。下面是我尝试选择数据的表截图的链接。

rates

fields

我的查询是

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

1 个答案:

答案 0 :(得分:1)

使用order bylimit

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中没有记录(这似乎是您的意图),这也会返回一行。