从数据库中获取具有相似字段但日期不同的记录?

Art*_*nyk 0 sql

我需要帮助查询我的表'ITEM'的字段:ID,NAME,STATUS,RECEIVED_AT(TIMESTAMP).

我需要获取status ='cancel'的所有记录,但前提是此表中有另一条记录,其中status ='available'且具有较早的received_at日期.我没有足够的经验来创建正确的查询,但希望有人帮助我正确的查询或指导我到一个解释基本SQL查询的网站,以便我可以学习.

Cad*_*oux 5

天真(即字面上且没有优化 - 请注意谓词与ITEM表的当前版本相关):

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
    )
Run Code Online (Sandbox Code Playgroud)