简体   繁体   English

在MySQL中使用子查询进行DELETE

[英]DELETE using a subquery in MySQL

I'd like to convert the following 我想转换以下内容

SELECT * `members` m
WHERE NOT EXISTS
  (SELECT s.mid
   FROM   memberships s 
   WHERE  s.mid = m.id);

to the equivalent delete statement. 到等效的删除语句。 However, the code below doesn't work: 但是,下面的代码不起作用:

DELETE FROM `members` m
WHERE NOT EXISTS
  (SELECT s.mid
   FROM   memberships s 
   WHERE  s.mid = m.id);

You can use the multiple-table DELETE syntax to perform an outer join between the tables: 您可以使用多表DELETE语法在表之间执行外部联接:

DELETE FROM members
USING members LEFT JOIN memberships ON memberships.mid = members.id
WHERE memberships.mid IS NULL

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM