2015-11-05 4 views
0

У меня есть следующие таблицы:Как выбрать несколько столбцов из таблицы подробно в SQL Server

  • MASTER таблица (ID (PK), имя и т.д.)
  • 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

Использование 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; 
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 
Смежные вопросы