我有T1
ID STATUS
1 NEW
2 NEW
Run Code Online (Sandbox Code Playgroud)
我有T2
T1ID OWNER OWNDATE
1 A 01.01.2017 10:00:00
1 B 02.02.2017 10:00:00
1 C 03.03.2017 10:00:00
2 B 02.02.2017 10:00:00
2 C 03.03.2017 10:00:00
Run Code Online (Sandbox Code Playgroud)
由于 ID 1 的 A 具有最小 OWNDATE,并且由于 ID 2 的 B 具有最小 OWNDATE
我想得到结果
1 NEW A
2 NEW B
Run Code Online (Sandbox Code Playgroud)
但在加入后,我不确定将 MIN 放在哪里,以便我可以从两个表中找到最小值
SELECT
T1.ID, T1.STATUS, T2.OWNER
FROM
T1
JOIN
T2 ON T1.ID = T2.T1ID
Run Code Online (Sandbox Code Playgroud)
先感谢您
下面是纯 SQL 的解决方案,使用子查询,它应该适用于大多数数据库。
SELECT
T1.ID, T1.STATUS, T2.OWNER
FROM
T1
JOIN
T2
ON T1.ID = T2.T1ID
AND t2.owndate = (
select min( owndate ) FROM t2
where t2.T1ID = t1.id
)
Run Code Online (Sandbox Code Playgroud)