1

OwnerId次の4つのレコードから、 2番目に新しいレコードを選択したい

ItemId  OwnerId Date
11477   20981   2013-05-13
11477   1       2013-05-21
11477   21086   2013-05-22 #this is the one I'm talking about
11477   3868    2013-05-24

それについてどうやって行くのですか?

4

3 に答える 3

2

これはItemID指定する必要があり、

SELECT *
FROM   TableName
WHERE  ItemID = '11477'
ORDER  BY DATE DESC
LIMIT  1,1

ただし、 を指定せずItemID、 ごとに 2 番目に新しいすべてのレコードを取得する場合は、相関サブクエリを使用して、 lastestに基づいてItemIDすべてのシーケンス番号を生成できます。ItemIDDATE

SELECT  ItemId, OwnerID, Date
FROM
        (
            SELECT  A.ItemId, 
                    A.OwnerId, 
                    A.Date,
                    (
                        SELECT  COUNT(*)
                        FROM    tableName c
                        WHERE   c.ItemId = a.ItemId AND
                                c.Date >= a.Date) AS RowNumber
            FROM    TableName a
        ) x
WHERE   RowNumber = 2
于 2013-06-02T14:53:01.730 に答える
0
select ownerid
from your_table
order by date desc
limit 1, 1
于 2013-06-02T14:53:22.513 に答える
0

降順で日付をORDER BY指定すると、新しいものから古いものの順に並べ替えられ LIMIT 1,1、2番目の結果のみを取得できます。これは、探しているものです。

SELECT *
FROM table
ORDER BY date DESC
LIMIT 1,1
于 2013-06-02T14:53:35.267 に答える