我的意思是,我想删除一个表中与另一个表位于同一个表中的所有行 type
. 我试图在一个查询中定义它,但是当我从表中选择要从中删除行时,查询无法处理。
查询:
DELETE FROM `user`
WHERE `user_id` IN (SELECT `user_id`
FROM `user`
WHERE `type` = 'x')
AND `type` = 'y';
如何重写此查询以使其正常工作?
3条答案
按热度按时间ecr0jaav1#
在
Update
在特定表上,mysql不允许将同一个表用作WHERE
条件。但是,这里不需要使用子查询,一个简单的“self-inner join”就足够了。
egdjgwm82#
只需在另一个子查询中使用它就可以了
z9smfwbn3#
你试过:
内部查询选择类型为的所有条目
'x'
或者'y'
,这将删除类型x和y的所有用户。假设表的形状如下所示:
用户