我有三张 table 。
circle id name 1 first 2 two 3 three 4 four user_circle user_id circle_id user_type_id 1 1 1 1 2 1 1 3 1 1 4 2 2 2 2 user_type id type 1 admin 2 member
我想删除 user_id =1 且 user_type_id =1 且该圈子中用户数为 1 的圈子。我怎样才能在一个查询中做到这一点?
我需要一个将从表中删除以下圆圈的结果。
circle_id 1 3
最佳答案
首先选择只有一个用户的circle_id
。然后,您必须创建一个子查询并为其指定别名,因为您无法更新刚刚从中选择的表。最后,使用 DELETE
并应用您需要的所有 WHERE
条件。
DELETE FROM users WHERE circle_id IN (
SELECT * FROM (
SELECT circle_id FROM users GROUP BY circle_id HAVING (COUNT(user_id)=1)
) AS u
)
AND user_id = 1 AND user_type_id = 1
关于mysql - 在一个查询中使用删除和选择子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29985394/