PostgreSQL中更新语句中的内部联接
发布时间:2020-12-13 16:17:22 所属栏目:百科 来源:网络整理
导读:我有一个名为temp_table的表,它由以下行组成: cola colb result ---------------- p4 s1 0 p8 s1 0 p9 s1 0 p5 f1 0 p8 f1 0 现在我需要使用colb的count(*)更新结果列.我正在尝试以下查询: update tem_tableset result = x.resultfrom tem_table ttinner j
我有一个名为temp_table的表,它由以下行组成:
cola colb result ---------------- p4 s1 0 p8 s1 0 p9 s1 0 p5 f1 0 p8 f1 0 现在我需要使用colb的count(*)更新结果列.我正在尝试以下查询: update tem_table set result = x.result from tem_table tt inner join(select colb,count(*) as result from tem_table group by colb) x on x.colb = tt.colb; 并从temp_table中选择不同的colb和结果: select distinct colb,result from tem_table; 获得输出: colb result ----------- s1 3 f1 3 但预期的产出是: colb result ----------- s1 3 f1 2 我没有得到我在查询中出错的地方?请帮帮我.谢谢
您不应该重复要在from子句中更新的表.这将创建一个笛卡尔自连接.
从手册中引用:
(强调我的) 不幸的是,UPDATE不支持使用JOIN关键字进行显式连接.像这样的东西应该工作: update tem_table set result = x.result from ( select colb,count(*) as result from tem_table group by colb ) x where x.colb = tem_table.colb; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ios – iTunes商店操作失败:您没有授权使用此服务
- c – reinterpret_cast改变指针值的真实例子?
- 共享日常收集JS正则表达式(JavaScript regular expression)
- 建议使用Objective-C类的C类最小化使用Objective-C?
- ruby-on-rails – 在activerecord中设置默认整数值
- c# – 如何避免与IoC容器耦合
- c – 无法删除std :: vector&std :: array?
- ruby-on-rails – 带有RVM的Ruby 2.1.1:获取libyaml错误
- NoSQL 数据库的使用场景
- 解析xml报文,xml与map互转