SQL:左连接但仅选择创建日期最少的一行

90a*_*yss 5 sql t-sql sql-server join greatest-n-per-group

假设我有这张表:

表A:

 id   name    
---   ---  
 1    John   
Run Code Online (Sandbox Code Playgroud)

表B:

  id     content    Aid      Date
  ---      ---      ---     ----------
  100      abc       1      2017-02-03 11:16:00
  101      xyz       1      2017-02-03 11:50:00
Run Code Online (Sandbox Code Playgroud)

我想连接 A 和 B,以便生成的表只有 B 中日期 = 最小值的一行。

我想要的输出:

 id   name  content
---   ---   ------
 1    John    abc
Run Code Online (Sandbox Code Playgroud)

我失败的加入尝试也给了我 (1, John, xyz) 行:

SELECT A.[id], A.[name], B.[content]
FROM A
LEFT JOIN B
ON A.id = B.Aid
Run Code Online (Sandbox Code Playgroud)

后来我尝试做一个 WHERE inside join 但我无法构造它:

SELECT A.[id], A.[name]
FROM A
LEFT JOIN B
ON A.id = (SELECT Aid FROM B WHERE Date = (SELECT MIN(Date) FROM B 
WHERE <no idea where I'm going?>)
Run Code Online (Sandbox Code Playgroud)

有人可以指出我正确的方向吗?

Mit*_*pta 8

SELECT A.[id], A.[name],B.[content]
FROM A
LEFT JOIN B
ON A.id = B.Aid
AND B.Date = (Select Min(Date) from B as B2 where B2.Aid=A.id)
Run Code Online (Sandbox Code Playgroud)