SQL 使用第二个表中的最小值连接两个表

Dej*_*jan 3 sql db2 join min

我有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)

先感谢您

kro*_*lko 5

下面是纯 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)