【发布时间】:2016-09-24 23:57:13
【问题描述】:
我有两个表,一个“主”是名称的主列表,第二个“场景”是主列表中每个名称的多个场景的列表。我希望我的INNER JOIN 查询从“场景”表中获取具有列状态的 ID 主列表,但仅获取基于场景 ID 的最新状态。这是我尝试过的代码和具有所需输出的表格
SELECT DISTINCT a.[user], a.ID, a.Name, b.status
from master a
INNER JOIN scenario b ON a.ID = b.ID
WHERE
b.scenarioID = (
SELECT max(scenarioID) FROM scenario c2 WHERE c2.ID=c.ID)
大师
ID user Name
425 John Skyline
426 John Violin
427 Joe Pura
场景
ID ScenarioID status
425 1 active
425 2 active
425 3 done
426 1 active
426 2 active
427 1 done
期望的输出
ID user Name status
425 John Skyline done
426 John Violin active
427 Joe Pura done
【问题讨论】:
-
stackoverflow.com/questions/1313120/… 适用于 mysql 而不是 sql server,因此有不同的方法来解决问题。此问题还涉及加入最后一条记录,而重复问题只是试图获取表中的最后一条。
标签: sql sql-server max inner-join where