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)
有人可以指出我正确的方向吗?
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)
| 归档时间: |
|
| 查看次数: |
9984 次 |
| 最近记录: |