我有一张表,名为jobs
与各种信息。每个作业都有一个作业编号(唯一的 ID)。
然后还有另一个表,名为purchaseOrders
具有 jobID 的 FK 和 poID 的 PK。
编辑采购订单条目时,旧信息将被保存...这意味着,我创建了一个新的 PO 条目(新的唯一 ID)。
我想做的是编写一个查询选择“jobs”中的所有字段以及“purchaseOrders”中的所有字段,但仅选择该作业的最新 poID.
例如:
jobID Name State poID time jobID
========================== ==========================
1 foo fl 1 1:00 1
2 bar ga 2 1:10 1
3 zzz ny 3 1:20 1
4 2:00 2
5 2:01 2
6 2:30 2
7 3:00 3
8 3:40 3
9 3:15 3
如何运行一个查询来从两个表中选择所有列,但只包含特定 jobID 的最高 poID 信息?
SELECT a.*, c.*
FROM jobs a
INNER JOIN
(
SELECT jobID, MAX(time) maxVal
FROM purchaseOrders
GROUP BY jobID
) b ON a.jobID = b.jobID
INNER JOIN purchaseOrders c
ON c.jobID = b.JobID AND
c.time = b.maxVal
- SQLFiddle 演示 http://sqlfiddle.com/#!2/c67d2/2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)