SQL SELECT WHERE麻烦任何有用的想法

Nat*_*ate 0 sql sql-server join sql-server-2005 where

我有两个表父母和孩子(在PK/FK GUID上相关)

Child有一个Timestamp(记录创建日期/时间).

我想要做的只是获取最新的子记录和父记录,FOR EACH父记录.

SELECT 
    dbo_Parents.ParentName, 
    dbo_ChildEntry.CountPropertys, 
    dbo_ChildEntry.DateTimeStamp
FROM 
    dbo_Parents INNER JOIN dbo_ChildEntry 
ON
    dbo_Parents.ParentID = dbo_ChildEntry.ParentID
WHERE 
    ([WHAT SHOULD BE HERE?]))
Run Code Online (Sandbox Code Playgroud)

Fab*_*der 8

假设您想要最新的条目,您必须使用TOP 1并按顺序排序.

SELECT TOP 1
dbo_Parents.ParentName, 
dbo_ChildEntry.CountPropertys, 
dbo_ChildEntry.DateTimeStamp 
FROM dbo_Parents 
INNER JOIN dbo_ChildEntry ON dbo_Parents.ParentID = dbo_ChildEntry.ParentID 
ORDER BY dbo_ChildEntry.DateTimeStamp desc
Run Code Online (Sandbox Code Playgroud)

澄清后编辑:"最近的子记录和父记录,FOR EACH父记录":

WHERE dbo_ChildEntry.DateTimeStamp = 
      ( Select Max( dbo_ChildEntry.DateTimeStamp )
               from dbo_ChildEntry 
               where dbo_Parents.ParentID = dbo_ChildEntry.ParentId )
Run Code Online (Sandbox Code Playgroud)