【问题标题】:Select min date with another table columns选择另一个表列的最小日期
【发布时间】:2016-10-29 14:00:41
【问题描述】:

我想为用户费率选择最后创建的字段。下面是我尝试从中选择数据的表格的屏幕截图的链接。

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

结果是

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

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

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

【问题讨论】:

    标签: mysql


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 2014-04-10
      相关资源
      最近更新 更多