我的表格与以下结构类似:
我正在寻找一种方法来删除role_id = 4的所有行,如果已经有一行具有相同的context_id和user_id,并且role_id = 3。
因为已经有一行具有相同的context_id,user_id和role_id = 3
答案 0 :(得分:2)
进行DELETE
自我加入:
DELETE t1
FROM yourTable t1
INNER JOIN yourTable t2
ON t1.context_id = t2.context_id AND
t1.user_id = t2.user_id AND
t2.role_id = 3
WHERE
t1.role_id = 4;
这符合以下条件下表格中的行:
context_id
与另一个context_id
匹配,user_id
也匹配role_id
为4,右侧记录的role_id
为3