我有table t1
,它存储所有请求。我有table t2
,它存储与表t1中的请求相关的审核。为了获得每个请求的最新审核,我需要在两个表上执行联接。
我能够使用以下查询执行JOIN:
SELECT
t2.id, t1.name,
t2.Msg
FROM
requests t1
LEFT JOIN audits t2 ON t1.AuditId = t2.AuditId
ORDER BY t2.id DESC;
以上查询返回的结果如下:
id Name Msg
56895415 ABC05 Message5
56895414 ABC05 Message4
56895413 ABC05 Message3
56895303 ABC04 Message5
56895302 ABC04 Message4
56895301 ABC04 Message3
我想修改查询,以便为每个only the last row(with highest id value)
显示t1.name
换句话说,我的输出应如下所示:
id Name Msg
56895415 ABC05 Message5
56895303 ABC04 Message5
您可以像下面这样重写查询
SELECT
t2.id, t1.name,
t2.Msg
FROM
requests t1
LEFT JOIN (SELECT id, Msg FROM audits ORDER BY id DESC LIMIT 1) t2 ON t1.AuditId = t2.AuditId
ORDER BY t2.id DESC;