我有以下表格:
MASTER
表(ID(PK),NAME等)DETAIL
表(ID(PK),IDMASTER(FK),VALUE1,DATE1等)我需要的是一个SQL查询或一种选择方式
我使用SQL Server。
我需要的是一个SQL查询或一种选择方式
SELECT
M.ID, M.NAME,
(SELECT TOP 1 DT.ID, DT.VALUE1
FROM DETAIL D
WHERE D.IDMASTER = M.ID
ORDER BY DATE 1 DESC)
-- more than one column with a where clause and an order clause
FROM
MASTER M
答案 0 :(得分:0)
您使用APPLY
运算符执行此操作:
select * from master m
outer apply(select top 1 * from detail d where d.masterid = m.id order by d.date1 desc)oa
答案 1 :(得分:0)
使用OUTER APPLY
:
SELECT M.ID,
M.NAME
D.ID,
D.VALUE1
FROM dbo.[MASTER] M
OUTER APPLY(SELECT TOP 1 ID, VALUE1
FROM dbo.DETAIL
WHERE IDMASTER = M.ID
ORDER BY [DATE] DESC) D;