如何从SQL Server中的详细信息表中选择多个列

时间:2015-11-05 16:19:13

标签: sql-server

我有以下表格:

  • 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

2 个答案:

答案 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;
相关问题