我成功地从数据库中检索了帖子少于2个的用户,并显示了如下查询结果:
SELECT Users.*, count( Posts.user_id )
FROM Posts LEFT JOIN Users ON Users.user_id = Posts.user_id
GROUP BY Posts.user_id
HAVING count( Posts.user_id ) < 2
接下来我要实现的是为该查询的所有用户更新一个称为active的字段,因此我尝试将UPDATE语句与第一个查询一起添加:
UPDATE Users
SET Users.Active = 3
WHERE count( Posts.user_id ) < 2
但是我无法使它正常工作。 应该将UPDATE部分放置在何处或应该单独运行?
答案 0 :(得分:1)
在where语句中,您需要选择每个用户的帖子数并检查其是否小于2。
UPDATE Users
SET Users.Active = 3
WHERE (SELECT count( Posts.user_id )
FROM Posts
WHERE Users.user_id = Posts.user_id
GROUP BY Posts.user_id) < 2