1

質問を例で説明することしかできません..このデータがあれば

    use-id         user-name          add-date
---------------------------------------------------
    2              sami               17/1/2011
    2              sami               18/1/2011
    3              alaa               18/1/2011
    4              jamal              19/1/2011

各ユーザーの最新の行を選択したい、このデータを結果にしたい:

    use-id         user-name          add-date
---------------------------------------------------
    2              sami               18/1/2011
    3              alaa               18/1/2011
    4              jamal              19/1/2011

一意のユーザー ID ごとに、最新の追加レコードを取得したいと考えています。どうやって ?

4

2 に答える 2

0

1つの方法は、各ユーザーの最新レコードの日付を取得することです。

select `use-id`, max(`add-date`) as `latest` 
from <table_name> 
group by `use-id`

そのクエリを呼び出し、newest_recordsそれを使用して、最新の日付を持つ行のみを選択します。

select a.*
from <table_name>
inner join newest_records b
on a.`use-id` = b.`use-id` and a.`add-date` = b.`latest`

編集:

すべてをまとめると(コピー/貼り付け)、次のようになります。

select a.*
from <table_name>
inner join (  
  select `use-id`, max(`add-date`) as `latest` 
  from <table_name> 
  group by `use-id`) b
on a.`use-id` = b.`use-id` and a.`add-date` = b.`latest`
于 2012-02-07T21:26:34.707 に答える