0

このようなデータがあるとしましょう (日付型のもの、月/日/年/フラグ/ユーザー列)

1 - 1 - 2013 flag:1 user:123456
1 - 2 - 2013 flag:0 user:123456
1 - 3 - 2013 flag:0 user:123456
1 - 4 - 2013 flag:0 user:123456
1 - 5 - 2013 flag:1 user:123456
3 - 1 - 2013 flag:1 user:987654
3 - 2 - 2013 flag:0 user:987654
3 - 3 - 2013 flag:0 user:987654
3 - 4 - 2013 flag:0 user:987654
3 - 5 - 2013 flag:1 user:987654

最初のレコードを除いて、ユーザー 123456 からすべてのレコードを削除したいと考えています。私は試した:

DELETE FROM table 
WHERE year = 2013 
AND user = 123456 
AND (month != 1 AND day != 1 AND year != 2013 AND flag != 1)

フラグは重要です。私はこれに困惑しています。私はこのようにNOT INを試しました:

DELETE 
FROM table 
WHERE year = 2013 
AND user = 123456 
NOT IN (SELECT * 
        FROM table 
        WHERE month = 1 AND day = 1 AND year = 2013 AND flag = 1)

しかし、私はNOT INを機能させることができません。私は何を間違っていますか?

4

1 に答える 1