嵌套查询SQL

时间:2015-07-19 03:36:43

标签: sql postgresql

我有一个quote_item表,其中每个项目都包含以下字段:name,product_id,r_code1,r_code2

产品表还有r_code1和r_code2

该数据位于两个位置,因为用户希望报价为快照,如果他们稍后在产品级别更改r_code1,则不应自动影响报价。

但是,由于出现了错误,我现在被要求将r_code更改反映到现有引号。

如果我的引号包含20个quote_items,我如何编写一个查询,将每个quote_item.rcode_1更新为相应的product.rcode_1。链接是通过quote_item.product_id = product.id。

提前致谢 尼克

2 个答案:

答案 0 :(得分:2)

update qi set qi.rcode_1 = product.rcode_1 
from quote_items qi
    inner join product 
        on product.id = qi.product_id

答案 1 :(得分:1)

以下是适用于任何数据库的标准SQL:

update qi
    set rcode_1 = (select p.rcode_1 from product p where p.id = qi.product_id);

除了数据库之外,还有其他方法可以表达这一点,但上述内容应适用于任何数据库。