MySQL:找到max(created_at)那里的(a,b,...)

时间:2017-09-20 22:37:51

标签: mysql sql

背景信息:我正在处理从其他页面抓取的抵押信息,因此我正在处理的数据可能不一致。

可能相关的列:created_at,updated_at,type,mortgage_duration,(15年或30年)。

鉴于我正在寻找一种特定的类型,我需要找到抵押贷款数据为15的最近抵押贷款信息和抵押贷款利率为30.我只需要其中一个,因为这就是我们所展示的全部。

结果可能如下:

+-----------+-----+--------+-------+---------------------+----------+
| rate_type | m_d | info1  | info2 | created/updated_at  | info3    |
+-----------+-----+--------+-------+---------------------+----------+
| type1     | 15  |  12345 | 11111 | 2017-09-20 21:44:49 |    09876 |
| type1     | 30  |  23456 | 22222 | 2017-09-20 21:44:49 |    12121 |
+-----------+-----+--------+-------+---------------------+----------+

创建/ updated_at在15年和30年之间不需要相同,但是大部分时间都是如此。

1 个答案:

答案 0 :(得分:1)

也许不是最优雅的解决方案,但这对我来说是可读的。

 (SELECT *
 FROM table
 WHERE mortgage_duration=15
  and type='type1'
 ORDER BY created_at DESC
 LIMIT 1)
UNION ALL
 (SELECT *
 FROM table
 WHERE mortgage_duration=30
  and type='type1'
 ORDER BY created_at DESC
 LIMIT 1)