sql - 将查询中每一行的 bool 值设置为 FALSE 'HAVING' ?

标签 sql postgresql

(对标题的措辞感到抱歉。)

我有以下 SQL 查询来检索我想要的所有行:

SELECT
    app_activity.name 
FROM
    app_chatmessage
JOIN
    app_activity ON app_chatmessage.activity_id = app_activity.id
GROUP BY
    app_activity.name
HAVING
    COUNT(app_chatmessage.owner_id) = 1;

现在,表 app_chatmessage 也有一个列 seen。对于上述查询返回的所有行,我想将此列设置为 FALSE。我该怎么做?

最佳答案

试试这个

Update app_chatmessage set seen='FALSE' where
activity_id in 
(
SELECT
    app_activity.id
 FROM
     app_chatmessage
 JOIN
      app_activity ON app_chatmessage.activity_id = app_activity.id
 GROUP BY
     app_activity.name
 HAVING
     COUNT(app_chatmessage.owner_id) = 1
);

关于sql - 将查询中每一行的 bool 值设置为 FALSE 'HAVING' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32307079/

相关文章:

c - libpq 只在字符串列中插入第一个字符

sql - WHERE 和 AND 子句不返回值

mysql - 如何显示类别组合的计数?

sql - 使用 LIKE 时如何转义方括号?

sql - 进度数据库 4GL - 导出文件的数学计算

php - 如何在首次登录后销毁用户帐户 - php

postgresql - 在 PostgreSql 中查找大型数据集中最近邻居的最佳查询是什么?

php - UBUNTU 11.04 + PHP + POSTGRESQL 增强性能

postgresql - Laravel Eloquent CAST() 表列与 postgres 生成错误

postgresql - 直接在 Google AppEngine 上使用 psycopg2