如何在Mysql的2条记录中选择最后一个日期
Posted
技术标签:
【中文标题】如何在Mysql的2条记录中选择最后一个日期【英文标题】:How to select last date in 2 record in Mysql 【发布时间】:2012-07-31 04:01:35 【问题描述】:?
表A
SID NAME Sex
1 Jam M
2 Da F
表 B
ID Title SID Date
1 A 1 2012-07-31 09:57:10
2 NULL 1 2012-07-31 09:57:13
3 A 2 2012-07-31 10:10:13
4 NULL 2 2012-07-31 10:57:13
我想内联这两个表,
但只选择表 B(SID 不同)的一条记录,其中标题不为空,然后显示
标题的最大日期为空字段。
结果要最大 Date of Null 标题:
ID Name Title SID Date
1 Jam A 1 **2012-07-31 09:57:13**
2 DA A 2 **2012-07-31 10:57:13**
怎么做?
【问题讨论】:
【参考方案1】:SELECT b.ID, a.NAME, b.Title, b.SID, b.Datea
from tablea a left outer join
(( SELECT sid, MAX(datea) AS latest
FROM tableb
where title is not null
GROUP BY sid) AS dt
INNER JOIN tableb b ON b.sid= dt.sid and b.datea=dt.latest )
on a.sid=b.sid
【讨论】:
【参考方案2】:我认为这样的事情对你有用:
SELECT b.ID, a.NAME, b.Title, b.SID, b.Date
FROM TABLEA a
INNER JOIN (SELECT SID, IFNULL(Title, "") AS Title,
MAX(IF(Title IS NULL, Date, NULL)) Date
FROM TABLEB GROUP BY SID) b
ON a.SID = b,SID;
【讨论】:
【参考方案3】:试试我的代码(它有效):
SELECT b.id, b.title, b.sid, b.date
FROM table_b as b
JOIN table_a as a ON a.sid = b.sid
WHERE b.id in (SELECT MAX(id) FROM table_b GROUP BY sid)
【讨论】:
请遵循代码标准。对 mysql 关键字使用 CAPS。这样会更容易阅读以上是关于如何在Mysql的2条记录中选择最后一个日期的主要内容,如果未能解决你的问题,请参考以下文章