0

Access データベースを使用していますが、次の質問があります。

特定の列に基づいて行全体を削除するにはどうすればよいですか?

たとえば、次の表があります。

Id | Name |   Desc  | Contact No. | 
1  | XYZ  | bla bla | 123456      | 
2  | ABC  | bla bla | 123456      |
3  | TUV  | hmmmmm  | 123456      |
4  | XYZ  | bla bla | 123456      |

重複した情報を持つデータのすべての行を削除したいので、この場合は行 1 と 4 です。もちろん唯一の問題は、行全体を一意にする Id です....

これを削除するにはどうすればよいですか?これを処理できる SQL コードはありますか?

4

2 に答える 2

2

重複を検出するための自動結合:

DELETE FROM Table
WHERE Id IN
(
    SELECT t1.Id
    FROM Table t1
        INNER JOIN join Table t2
            ON t1.Name = t2.Name
            AND t1.[Desc] = t2.[Desc]
            AND t1.Contact = t2.Contact 
)

重複ごとに 1 つの行のみを保持する場合は、次の質問を見てください:テーブルから重複した行を削除する

DELETE FROM Table
WHERE Id NOT IN
(
    SELECT MIN(Id)
    FROM Table
    GROUP BY Name, [Desc], Contact
)
于 2013-04-16T12:55:09.543 に答える