sql - 在 POSTGRESQL 中更新列的值
问题描述
我有 4 张桌子:
1. matchsal
ID salaray
1 1000
2 2000
3 3000
4 4000
5 5000
2. TABLE1
ID C
1 NA
2 NA
3 NA
4 NA
5 NA
3. TABLE2
ID lfs1 lfs2
1 2 3
2 3 1
3 3 1
4 3 1
5 2 3
4. TABLE3
ID_NIC filternn
1 private
2 public
3 private
4 Private
5 public
我想要的是用匹配表中的工资值和其他表中的条件更新 table1,我尝试了这个查询:
update TABLE1 LFS
SET C1= (Select SALARY from matchsal ss )
WHERE LFS."ID" IN
( SELECT "ID" from
TABLE2 lfs,
TABLE3 NIC
WHERE lfs."ID"=NIC."ID_NIC"
and lfs.lfs1 <> LFS.lfs2
and filternn in ( 'Private'))
我收到了这个错误:错误:用作表达式的子查询返回的不止一行 SQL 状态:21000
解决方案
中的子查询SET
导致问题。您可能想要:
SET C1 = (Select ss.SALARY from matchsal ss where ss.id = lfs.id)
但这只是一个猜测。
推荐阅读
- r - 从 R Markdown 修改 .bib 文件
- flutter - 如何在验证器中引用表单字段的值或颤振中的另一个表单字段
- c# - 单击的项目不播放歌曲并给出错误“系统找不到指定的文件”
- python - 从矩阵的 3D 堆栈在 numpy/scipy 中构造块对角矩阵的 3D 堆栈的有效方法
- c++ - gcc 模棱两可的模板实例化错误
- mapbox - Mapbox GL JS 忽略属性表达式
- android - 如何在Android上将多个http请求和数据库查询与Rxjava结合起来
- php - 如何验证指定的代理是否在 php 脚本中使用?
- iis-7 - 与 IP 地址关联的别名
- javascript - 反应钩子,回调中未捕获的变量