mysql - 选择其他表列的最短日期

标签 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

结果是

内容              已创建                            
多洛坐             2016-10-28 19:33:50       
lorem ipsum      2016-10-28 19:33:49       

如何修改我的查询以获得如下所示的结果?

内容              已创建                            
lorem ipsum      2016-10-28 19:33:49       

最佳答案

使用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;

在您的版本中,左连接不是必需的——它通过where子句变成内连接。此外,我希望 f.rate_id 始终与 r.rate_id 匹配,特别是如果您有正确声明的外键关系。即使字段中没有记录,这也会返回一行(这似乎是您的意图)。

关于mysql - 选择其他表列的最短日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40319845/

相关文章:

mysql - 保存结果以在 sql 查询中再次使用它

python - SQLAlchemy 的 "post_update"与已从 session 中删除的对象的行为不同

php - 如果来自数据库的散列密码与输入密码匹配,则登录

MySQL - 从结果中排除所有被阻止的用户

python - 更改 Django 默认模型设置

php - "No data supplied for parameters in prepared statement"全局插入函数

mysql - 调用存储过程期间 MySQL 中的 date_added、date_modified 列警告 1265

javascript - 获取简单的 CMS 插件

mysql - 如何在从我的sql表导出csv文件中的数据之前检查行数

mysql - 在 MySQL 服务启动时运行 SQL 查询