このクエリは、テーブル内のすべての最初のものを示していますID。YDid_test
SELECT ID, YD
FROM id_test
GROUP BY YD
これらは保持する必要がある行です。次のクエリは、削除する必要がある ID を返します。
SELECT id_test.ID
FROM id_test LEFT JOIN (select ID, YD from id_test group by YD) id_test_keep
on id_test.ID=id_test_keep.ID and id_test.YD = id_test_keep.YD
WHERE id_test_keep.ID IS NULL
今、私はあなたのテーブルについてもっと詳細が必要だと思いますが、あなたが必要だと思うのはこれです:
DELETE FROM test
WHERE
test.ID IN (
SELECT id_test.ID
FROM id_test LEFT JOIN (select ID, YD from id_test group by YD) id_test_keep
on id_test.ID=id_test_keep.ID and id_test.YD = id_test_keep.YD
WHERE id_test_keep.ID IS NULL)