【问题标题】:update join and where using Postgres使用 Postgres 更新连接和位置
【发布时间】:2017-01-30 02:41:40
【问题描述】:

我有两个表:productprice 和 product 并且我在该表上有一个字段名称 id,我想根据产品代码更新 productprice 上的字段名称 enddate 我尝试了几种语法:

update productprice
set enddate = ’2016-12-31 00:00:00’
from product inner join
     productprice
     on product.id = productprice.id
where product.code = ‘9301940252’

但结果是“表名“productprice”指定了多次”

我在这里做错了什么?谢谢。

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    这是 MySQL 的正确语法:

    update productprice pp join
           product p
           on p.id = pp.id
        set pp.enddate = '2016-12-31' 
        where p.code = '9301940252';
    

    鉴于您的错误以及问题最初以 Postgres 和 MySQL 作为标签的事实,也许您需要 Postgres 语法:

    update productprice pp
        set enddate = '2016-12-31' 
        from product p
        where p.id = pp.id and p.code = '9301940252';
    

    【讨论】:

    • 只是问问。没有 AS 可以吗?关于productprice pp 和product p? :)
    • @jace 。 . .是的。我将as 用于列别名,但从不用于表别名。
    • 哦 :) 因为我也在表名上做 :) 不知道可以不做。谢谢
    • 仍然无法使用错误错误:在“加入”第 1 行或附近出现语法错误 = 更新产品价格 pp 加入产品 p
    • 这取决于您的数据库结构 (ERD) :) 您可以发布您的表格的屏幕截图吗?
    猜你喜欢
    • 2021-09-24
    • 1970-01-01
    • 2013-11-10
    • 2020-11-08
    • 2022-01-07
    • 2017-10-27
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多