我有三张桌子
dragons
id, name, age, creation_dateusers
id, name, user, passusers_dragons
user_id, dragon_id其思想是使用多对多表执行一个查询,该查询从Drag表中删除年龄低于给定用户且属于给定用户的行。我打算使用exist语句,但我对SQL还不是很了解。
发布于 2020-05-23 22:09:47
delete from dragons where id in (
select d.id from dragons d, users u, users_dragons ud where d.age < :YourGivenAge and ud.dragon_id = d.id and ud.user_id in (
select id from users where name = :YourGivenName ));对于级联删除,只需存储id,并从dragon_id = stored id所在的users_dragons表中第一次删除
发布于 2020-05-23 22:14:19
我倾向于建议:
delete from dragons d
where d.age < :age and
exists (select 1
from users_dragons ud
where ud.dragon_id = d.id and ud.user_id = :user_id
);https://stackoverflow.com/questions/61973001
复制相似问题