2011-03-25 79 views
0

我需要幫助查詢我的表'ITEM'的字段:ID,NAME,STATUS,RECEIVED_AT(TIMESTAMP)。從數據庫中獲取具有相似字段但日期不同的記錄?

我需要獲取status ='取消'的所有記錄,但只有當此表中有另一條記錄,且status ='available'時有更早的received_at日期。我沒有足夠的經驗來創建正確的查詢,但希望有人能夠幫助我進行正確的查詢,或者讓我指導一個解釋基本SQL查詢的站點,以便我可以學習。

回答

5

天真(即字面,沒有優化 - 注意,謂詞與當前版本的項目表的相關性):

SELECT * 
FROM ITEM AS current 
WHERE current.status = 'canceled' 
    AND EXISTS (
     SELECT * 
     FROM ITEM AS earlier 
     WHERE earlier.status = 'available' 
      AND earlier.RECEIVED_AT < current.RECEIVED_AT 
    ) 
+1

非常感謝,這有助於! – 2011-03-28 07:58:50

相關問題