我有一张名为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信息?
答案 0 :(得分:4)
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