首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更新SELECT输出的行的列

更新SELECT输出的行的列
EN

Stack Overflow用户
提问于 2019-08-14 20:14:24
回答 1查看 60关注 0票数 2

食用水果

代码语言:javascript
运行
复制
name      family       ordered           ordered_on
apple      tree         false             null
banana     tree         false             null
mango      tree         false             null 

台篮

代码语言:javascript
运行
复制
name      family       ordered           ordered_on
apple      tree         false             null
banana     tree         false             null

我有一个Select,它使用Except比较两个表。现在,我需要更改几个列的表水果行芒果。

我尝试了下面的查询,它更新了果树表中的所有行:

代码语言:javascript
运行
复制
UPDATE fruits 
   SET ordered='true', ordered_on = '08/14/2019' 
  FROM (SELECT LEFT name, family 
          FROM fruits 
        EXCEPT 
        SELECT name, family 
          FROM basket) AS subquery

我期望输出:

食用水果:

代码语言:javascript
运行
复制
mango      tree         true             08/14/2019
EN

回答 1

Stack Overflow用户

发布于 2019-08-14 20:39:03

您可以在不存在的情况下这样做:

代码语言:javascript
运行
复制
update fruits f
set ordered = true, ordered_on = '2019-08-14'
where not exists (
  select 1 from basket
  where name = f.name and family = f.family
)

演示

结果:

代码语言:javascript
运行
复制
| name   | family | ordered | ordered_on |
| ------ | ------ | ------- | -----------|
| apple  | tree   | false   |            |
| banana | tree   | false   |            |
| mango  | tree   | true    | 2019-08-14 |
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57501443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档