SQL从两个表中获取最大日期

4 sql oracle max

我有两张桌子

USER (one row per user)

id,username,firstname,lastname,lastmodified
1,johns, John,Smith, 2009-03-01
2,andrews, Andrew,Stiller, 2009-03-03


STUDIES (multiple rows per user)

id,username,lastmodified
1,johns, 2009-01-01
1,johns, 2009-02-01
1,johns, 2009-07-01
2,andrews,2009-05-05
2,andrews,2009-04-04
Run Code Online (Sandbox Code Playgroud)

我想从两个表中获取用户详细信息和最新日期:

johns,John,Smith,2009-07-01
andrews,Andrew,Stiller,2009-05-05
Run Code Online (Sandbox Code Playgroud)

救命?

Ego*_*gov 10

您需要MAX和GREATEST功能的组合:

select u.username
     , u.firstname
     , u.lastname
     , greatest(u.lastmodified,max(s.lastmodified))
  from USER u
     , STUDIES s
 where s.id = u.id
 group by u.id
     , u.username
     , u.firstname
     , u.lastname
     , u.lastmodified
Run Code Online (Sandbox Code Playgroud)

MAX - 用于聚合,GREATEST - 最多两个值.