Mysql SQL连接左获取最大值(日期)
我有这些桌子:Mysql SQL连接左获取最大值(日期),mysql,sql,join,greatest-n-per-group,Mysql,Sql,Join,Greatest N Per Group,我有这些桌子: 通知 id INT 日期时间 。。。 主题 身份证 名字 注意主题 身份证通知书 id_主题 我想得到每个主题的最新通知 SELECT id_theme, n.id FROM notice_theme LEFT JOIN ( SELECT id, cdate FROM notice ORDER BY cdate DESC ) AS n ON notice_theme.id_notice = n.id GROUP BY id_theme
- 通知
- id INT
- 日期时间
- 。。。
- 主题
- 身份证
- 名字
- 注意主题
- 身份证通知书
- id_主题
SELECT id_theme, n.id
FROM notice_theme
LEFT JOIN (
SELECT id, cdate
FROM notice
ORDER BY cdate DESC
) AS n ON notice_theme.id_notice = n.id
GROUP BY id_theme
结果不好。一个主意?谢谢。有很多方法可以解决这个问题,但我已经习惯了这样做。需要额外的子查询来分别计算每个
ID
的最新cDate
SELECT a.*, c.*
FROM theme a
INNER JOIN notice_theme b
ON a.ID = b.id_theme
INNER JOIN notice c
ON b.id_notice = c.ID
INNER JOIN
(
SELECT a.id_theme, MAX(b.DATE_CREATE) max_date
FROM notice_theme a
INNER JOIN notice b
ON a.ID_Notice = b.ID
GROUP BY a.id_theme
) d ON b.id_theme = d.id_theme AND
c.DATE_CREATE = d.max_date
:)