2つのテーブル間に1対1の列の関係がitem
あり、log
アイテムごとに、アイテムが処理されたかどうかを保存するログがあります。log.itemId
これは、に等しいことによって識別されitem.id
ます。log.status
処理が進行中か終了したかを示します(-1は保留中、1は終了中)。
処理が開始される前は、log
テーブル内の対応するアイテムの行はテーブルにありませんitem
。
ログに対応する行がない(処理が開始されていないことを意味する)か、ステータスが1ではない(保留中であることを意味する)アイテムから行を取得しようとしています。
私はこれを理解しようと夢中になっています、これは私の質問です:
SELECT
item.id
FROM item, log
WHERE log.itemId != item.id
OR (log.itemId = item.id AND log.status !='1')
ORDER BY item.id ASC LIMIT 1
ただし、これは空の結果を返します。
私は何が間違っているのですか?