【问题标题】:PostgreSQL update + join with an additional WHERE clausePostgreSQL 更新 + 加入一个额外的 WHERE 子句
【发布时间】:2021-09-17 18:24:06
【问题描述】:

我需要在我的 UPDATE 中使用 JOIN,以便我只填充条件适用的列的值。

我试图这样做,但我收到一条错误消息,提示“'LEFT' 或附近的语法错误”:

UPDATE products_mpn SET scrap = 5
LEFT JOIN products ON products.id = products_mpn.product
WHERE products.category_id = 101 OR products.category_id = 104

我发现我可以通过这种方式加入表格:

UPDATE t1
SET t1.c1 = new_value
FROM t2
WHERE t1.c2 = t2.c2;

但问题是我不能使用我的特定 WHERE 子句。关于如何实现这一点的任何想法?

【问题讨论】:

    标签: sql postgresql join sql-update


    【解决方案1】:
    UPDATE products_mpn 
    SET scrap = 5
    WHERE product IN ( SELECT id 
    FROM products
    WHERE category_id IN (101,104))
    
    

    【讨论】:

      【解决方案2】:

      试试这个:

      UPDATE products_mpn SET scrap = 5 WHERE product = ( SELECT product FROM products_mpn
      LEFT JOIN products ON products.id = products_mpn.product
      WHERE products.category_id = 101 OR products.category_id = 104)
      

      【讨论】:

        猜你喜欢
        • 2020-06-05
        • 2023-04-01
        • 2016-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-18
        相关资源
        最近更新 更多