SQL在内连接的中间使用嵌套选择

use*_*432 1 sql sql-server sql-server-2005

是否可以在加入过程中使用选择...

我正在尝试执行以下操作:

FROM 
tblorders o 
INNER JOIN tblunits u on o.id = u.orderid
INNER JOIN ((SELECT
                   ,Min(n.date) as [MinDate]
              from tblNotes n
             Where n.test = 'test') te
INNER JOIN tblnotes n on te.id = n.id
                     and te.[MinDate] = n.AuditinsertTimestamp)
INNER Join tblClient c ON o.ClientId = c.Id
Run Code Online (Sandbox Code Playgroud)

基本上在查询中间的选择中,它仅选择具有最小日期的注释.问题是我需要在这里做这个因为我需要从tblOrders成为第一个表.......

建议?

Red*_*ter 7

INNER JOIN失败,因为你在这里有一个领先的逗号:

,Min(n.date) as [MinDate]
Run Code Online (Sandbox Code Playgroud)

我想你正在寻找这样的东西:

SELECT ...
FROM tblorders o   
INNER JOIN tblunits u on o.id = u.orderid  
INNER JOIN (
    SELECT id, Min(date) as [MinDate]  
    from tblNotes 
    Where test = 'test'  
    group by id
) te  <-- not sure what JOIN clause to use here, please post schema
INNER JOIN tblnotes n on te.id = n.id  
    and te.[MinDate] = n.AuditinsertTimestamp  
INNER Join tblClient c ON o.ClientId = c.Id  
Run Code Online (Sandbox Code Playgroud)