4

私は2つのテーブルを持っています

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

2つのテーブルからユーザーの詳細と最新の日付を取得したいと思います。

johns,John,Smith,2009-07-01
andrews,Andrew,Stiller,2009-05-05

ヘルプ?

4

5 に答える 5

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

MAX -- 集計の場合、GREATEST -- 最大 2 つの値の場合。

于 2009-11-24T13:03:42.310 に答える
1

シンプルで直接的な選択が必要な場合:

select max(lastmodified) 
from (
    select max(lastmodified) as lastmodified from USER 
    union 
    select max(lastmodified) as lastmodified from STUDIES
);

これにより、USER から最大日付が取得され、次に STUDIES から最大日付が取得され、それらの 2 つの最大値が返されます。また、結果を改善するために、where 句といくつかの条件を内部選択に追加することもできます。

于 2014-06-25T08:44:02.937 に答える
0
SELECT MAX(Date) FROM Users u FULL JOIN Studies s ON u.Username=s.Username GROUP BY Username
于 2009-11-24T13:11:20.750 に答える
0

このようなもの

select username, max(lastmodified) from (
   select username, lastmodified from user 

   union all

   select username, max(lastmodified) as lastmodified 
   from studies
   group by username
) s
group by username
于 2009-11-24T13:13:01.743 に答える
0

SELECT MAX(updatedDate) as latestUpdated FROM ( SELECT updatedDate FROM オーディオ UNION ALL SELECT updatedDate FROM ビデオ )foo

于 2014-11-03T12:58:28.553 に答える