删除MySQL中与另一个表中的两列匹配的行

Ell*_*tus 2 mysql sql

我正在使用MySQL,并希望删除表T1中的条目:

user_id  level_id  other_data
   1        5         ...
   2        7         ...
   :
Run Code Online (Sandbox Code Playgroud)

其中user_idlevel_id值一起出现在表T2中:

user_id  level_id
   1         5
   2         6
Run Code Online (Sandbox Code Playgroud)

在此示例中,第一行将从表T1中删除.

我试过了:

delete from T1 where (user_id,level_id) in select user_id,level_id from T2;
Run Code Online (Sandbox Code Playgroud)

但是这有语法错误.

Gor*_*off 7

你很近.尝试使用exists:

delete from T1
    where exists (select 1
                  from t2
                  where t1.user_id = t2.user_id and t1.level_id = t2.level_id
                 );
Run Code Online (Sandbox Code Playgroud)