postgres 使用 join 更新

2024-03-02

我正在尝试使用 ht 中的数据更新表 tr。两者都有几乎相同的列。 所以为了测试我运行了这个查询。

SELECT * FROM tr a
RIGHT OUTER JOIN ht b
USING (date, name, ft )
WHERE ft IS NOT NULL

给出 129 行 检查是否正常,然后我运行更新查询为->

UPDATE tr
SET (o_t, g_v, br, s_t, st, c_d, n_r, n_a, cd_id) 
    = (a.o_t, a.g_v, a.br, a.s_t, a.st, a.c_d, a.n_r, a.n_a, 
    a.cd_id)
FROM tr a
RIGHT OUTER JOIN ht b
USING (date, name, ft )
WHERE a.ft IS NOT NULL

查询成功返回:受影响的 4134 行

有人可以指导我出了什么问题以及如何解决吗?


这在 Postgres 中有点复杂。不过,我质疑你的逻辑。看起来,一个right outer join不正确,因为您正在检查第一个表不是NULL。所以这会seem捕捉你的逻辑:

UPDATE tr
SET (o_t, g_v, br, s_t, st, c_d, n_r, n_a, cd_id) 
    = (a.o_t, a.g_v, a.br, a.s_t, a.st, a.c_d, a.n_r, a.n_a, 
    a.cd_id)
FROM tr a JOIN
     ht b
     USING (date, name, ft );

The where子句甚至是多余的,因为该值不能是NULL因为join健康)状况。无论如何,这不起作用,但它确实指出了正确的解决方案。

在 Postgres 中,该表位于update不能在FROM子句,除非您的意图是自连接。所以,试试这个版本:

UPDATE tr
SET (o_t, g_v, br, s_t, st, c_d, n_r, n_a, cd_id) 
    = (a.o_t, a.g_v, a.br, a.s_t, a.st, a.c_d, a.n_r, a.n_a, 
    a.cd_id)
FROM tr a JOIN
     ht b
     USING (date, name, ft )
WHERE tr.date = a.date and tr.name = a.name and tr.ft = a.ft;

然而,这个更新没有意义。我怀疑你希望这些值来自ht, NOT tr,当有匹配时。如果是这样,这是最简单的方法:

UPDATE tr
    SET (o_t, g_v, br, s_t, st, c_d, n_r, n_a, cd_id) 
        = (a.o_t, a.g_v, a.br, a.s_t, a.st, a.c_d, a.n_r, a.n_a, 
        a.cd_id)
    FROM ht a
    WHERE tr.date = a.date and tr.name = a.name and tr.ft = a.ft;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

postgres 使用 join 更新 的相关文章

  • 记录 Google Cloud SQL PostgreSQL 实例上的慢速查询

    我工作的公司使用 Google Cloud SQL 来管理生产中的 SQL 数据库 我们遇到了性能问题 我认为查看 监控高于特定阈值 例如 250 毫秒 的所有查询是一个好主意 除其他外 通过查看PostgreSQL 文档 https ww
  • SQL Server 2008 GUID 列全为 0

    我希望这是我做的一个简单的傻事 我的数据库中有一个表 设置如下 column name widget guid data type uniqueidentifier allow nulls false default value newid
  • 在 SQL 中如何获得整数的最大值?

    我试图从 MySQL 数据库中找出整数 有符号或无符号 的最大值 有没有办法从数据库本身提取这些信息 是否有我可以使用的内置常量或函数 标准 SQL 或 MySQL 特定的 At http dev mysql com doc refman
  • IN 运算符对 SQL 查询性能的影响有多大?

    我的 SQL 查询需要 9 个小时才能执行 见下文 Select Field1 Field2 From A Where Field3 IN 45 unique values here 当我将此查询拆分为 3 个完全相同的查询 仅每个 IN
  • 如何编写不返回任何内容的 postgres 存储过程?

    如何在 postgres 中编写一个根本不返回值的简单存储过程 即使使用 void 返回类型 当我调用存储过程时 我也会返回一行 CREATE FUNCTION somefunc in id bigint RETURNS void AS B
  • value >= all(select v2 ...) 产生与 value = (select max(v2) ...) 不同的结果

    Here https stackoverflow com questions 17026651 query from union of joins 17027784 noredirect 1 comment24611997 17027784
  • 如何在“order by”中添加条件?

    我有一个带有输入参数的存储过程 现在根据这个参数 我的 order by 语句将发生变化 如果输入参数是 ID int类型列 则按ID排序 如果是 ProductType 则按产品类型排序 如果是 IssueDate 则应按问题日期排序 现
  • 迁移问题:MS SQL > MySQL:插入缓冲区内存

    我在使用 MySQL Workbench 上的内置迁移工具时遇到问题 我正在将一个非常大的数据库从 MS SQL 2014 迁移到 MySQL MS SQL 服务器本地部署在我的 Windows 8 1 桌面上 MySQL 服务器在我的网络
  • SQL Server - SQL 替换整个数据库中所有表中的所有列

    这是一个很遥远的事情 我猜这个问题没有简单的答案 但是 我继承了一个数据库 其中填充了一些可怕的数据 许多包含描述的行都有回车符 这意味着当我们 BCP 输出数据时 它会带有回车符 我的问题 有没有办法在 MS SQL Server 中对整
  • 在 Oracle 中使用数据透视表的建议

    我需要一份报告 我应该使用数据透视表 报告将按类别分组 使用 case when 语句不好 因为有很多类别 您可以将 Northwind 数据库视为示例 所有类别将显示为列和报告将显示客户在类别中的偏好 我不知道另一个解决方案 并在互联网上
  • 如何在 Postgresql 中将 GIST 或 GIN 索引与 hstore 列一起使用?

    我正在使用 postgresql 9 3 的 hstore 我正在尝试对 hstore 列使用索引就像文档所述 http www postgresql org docs 9 3 static hstore html 我的问题是索引似乎没有被
  • parent_id 是外键(自引用)并且为 null?

    浏览 Bill Karwin 的书 SQL Antipatterns 第 3 章 Naive Trees 邻接表 父子关系 有一个注释表的示例 CREATE TABLE Comments comment id SERIAL PRIMARY
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p
  • 这个 SQL 语句在 Linq 中的等价物是什么?

    我需要将此 SQL 语句移植到 LINQ SELECT f ID as IdFlight Tarif 1 as Tarif f Time f TimeOfArrival sl Name as FromLoc sl Country as Fr
  • 如何处理多个连接

    我有一个复杂的查询 需要总共 4 个表中的字段 内部联接导致查询花费的时间比应有的时间长得多 我已经运行了一个 EXPLAIN 语句 其可视化结果附在下面 这是我的查询 SELECT pending corrections correcte
  • SQLite:从命令行仅将模式转储到 .sql 文件中

    我正在尝试转储架构test db仅 即没有数据 到名为的文件中schema sql从 OS X 中的命令行 无需启动 sqlite3 我知道我能做到 sqlite3 open test db output schema sql schema
  • 查询以查找平均加权价格

    我在 Oracle 中有一个表 每个给定部分包含多行 每行都有一个与其关联的数量和价格 还有一个给定零件的行集相加的总数量 以下是数据示例 我需要的是获得该零件的平均加权价格 例如 如果数量为 100 的零件的价格为 1 数量为 50 的零
  • Postgres 性能问题

    我们正在运行 Postgres 9 1 3 最近我们的一台服务器开始遇到重大性能问题 我们的查询在一段时间内运行良好 但截至 8 月 1 日 速度显着减慢 看起来大多数有问题的查询都是 Select 查询 带有 count 的查询尤其糟糕
  • SQLAlchemy:检查给定值是否在列表中

    问题 在 PostgreSQL 中 检查某个字段是否在给定列表中是使用IN操作员 SELECT FROM stars WHERE star type IN Nova Planet SQLAlchemy 的等价物是什么INSQL查询 我尝试过
  • PostgreSQL:如何转义'?

    我原来的sql INSERT INTO clients name phone VALUES Vs emandon 333026660 我读到关于 E 并尝试了这个 INSERT INTO clients name VALUES VsE em

随机推荐

  • 求近似规则的点网格子集的周长

    让我们考虑一组接近规则的二维网格 这些网格与相邻网格相邻 相邻网格具有一个或多个相同的顶点 这里是10个网格的样本 顶点坐标 经度 纬度 如下 A lt lon lat 1 2 1 85 30754 27 91250 2 85 32862
  • Powershell 对 Excel 工作簿进行多个 SQL 查询

    首先 如果这是一个重复的问题 我深表歉意 我搜索了又搜索 但没有找到任何可以解决我所遇到的问题的内容 我的目标是使用 7 个 Powershell 脚本 将 SQL 查询中的 CSV 输出到 1 个 Excel 工作簿中 每个 CSV 位于
  • VS.NET默认为私有类

    为什么 Visual Studio 在 C 中将新类声明为私有 我几乎总是把它们转为公开的 我是疯子吗 我不确定为什么要这样做 但为了让 Visual Studio 默认将该类创建为 Public 您需要执行以下操作 进入 Program
  • 在 xcode 4.5.1 上链接库 OpenCV 2.4.2

    我已经按照此处的说明安装了带有 macports 的 opencv 使用 Xcode 为 OS X Lion Mountain Lion 编译 OpenCV 2 3 1 https stackoverflow com questions 8
  • HttpApplication 不退出

    我有一个单页应用程序 前端使用 Angular js 后端使用 Web api2 还使用 Castle Windsor 和 SignalR 我在服务器上使用 C 组件来维护服务器状态 因此 在 Application Start 上 我将温
  • 将文件上传器添加到 Joomla 管理组件

    我根据 Joomla 指南制作了 Joomla 管理组件 http docs joomla org Developing a Model View Controller Component 2 5 Developing a Basic Co
  • 如何将我使用(DT)数据表创建的表保存为高质量图像?

    我创建了一个可以在我的 查看器 中查看的数据表 如果我使用导出来复制图像或保存为 png 它的质量往往会很低吗 我最好的选择是截取图像并将其粘贴到我的工作文档中 我在其中输入报告 但我知道必须有更好的方法 对我能做什么有什么建议吗 您可以使
  • 部署战争问题

    下面的错误是什么意思 我使用 eclipse 并将 web 项目导出为 war 文件 我部署到 weblogic 时出现我不明白的错误消息 Message icon Error Unable to access the selected a
  • 如何避免 javonet 中数组中基元的自动装箱

    根据中的例子https www javonet com java devs guides working with net arrays and collections from java with javonet https www ja
  • 无法检测adb版本,退出值:0xc0000135

    我使用的android studio最新版本 HEXM 已安装在我的电脑中 android虚拟设备未创建其显示未知问题 好的 所以我使用 genymotion 模拟器 但 android studio 没有检测到它 无法检测adb版本 退出
  • 标题中单个单词的颜色与组的颜色相匹配

    我最近在 经济学人 上看到了一张折线图 其中标题包含彩色单词以匹配折线图中使用的组的颜色 https www economist com blogs graphicdetail 2018 04 daily chart 1 我想知道如何使用
  • Golang SQL 查询变量替换

    我有 sql 查询需要变量替换才能更好地消耗我的go kit https github com go kit kit服务 I have dep org作为我的休息服务一部分的用户输入 例如 dep abc and org def 我尝试过一
  • “未捕获的引用错误:JQueryValidatorUI 未定义”?

    使用 jquery validation ui 插件时 未捕获的 ReferenceError JQueryValidatorUI 未定义 也未捕获类型错误 对象 对象对象 没有方法 验证 这是我的脚本顺序
  • 如何在JUNG中添加具有相同标签(但端点不同)的两条边?

    如何添加具有相同标签但端点不同的两条边 例如 我想添加两条具有相同标签 label1 的边 一条从顶点 v 1 到顶点 v 2 另一条从顶点 v 2 到 v 3 部分代码是 g addEdge label1 v 1 v 2 g addEdg
  • 如何将 javascript 对象发送到远程 CFC 组件

    我创建了一个 javascript 对象 var spanglist one q1 two q2 three q3 four q4 我创建 ajax jquery 对象以将数据发送到 CFC ajax url gridly componen
  • Angularjs:ReferenceError:范围未定义

    我是 Angularjs 的初学者 在理解模块和范围方面有一些困难 我不断收到范围未定义的错误 但我不明白为什么 首先 我将控制器链接到设置路线的位置 但由于控制器内的函数是在提交按钮上调用的 因此单击我将其拿走 我试过把它放回去 但这没有
  • pytest从不同的测试文件独立导入相同的模块

    以下主题模块包含两个函数 其中之一操作全局变量 mod py def global setter global x x 123 print setter x x def global getter print getter x x 每个功能
  • 如何在magento的成功页面中动态集成JS代码

    我知道 success phtml 是我应该放置我想要执行的代码的文件 但是我从 CJ 收到这个文件 它不是 html 而是一个 php 类 问题很简单 我想知道如何在收到订单后将此文件集成到 success phtml 中 谢谢 clas
  • np.ndarray`“is”中的奇怪行为

    is 内置运算符显示元素的奇怪行为np ndarray 尽管右侧和左侧的 id 相同 但 is 运算符返回 False 此行为特定于np ndarray a np array 1 b a view print id a 0 id b 0 T
  • postgres 使用 join 更新

    我正在尝试使用 ht 中的数据更新表 tr 两者都有几乎相同的列 所以为了测试我运行了这个查询 SELECT FROM tr a RIGHT OUTER JOIN ht b USING date name ft WHERE ft IS NO