首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试从一个表中获取列值,然后使用update & JOIN将其更新到另一个表中

尝试从一个表中获取列值,然后使用update & JOIN将其更新到另一个表中
EN

Stack Overflow用户
提问于 2022-03-29 20:39:44
回答 1查看 25关注 0票数 1

MS,使用SQL,尝试遵循this post--

我的目标是使用tbl_line_items.Order_Numbertbl_line_items.Line_Number作为主键,获取列值tbl_line.items_Product_Line,并将其更新为tbl_MTO_vs_ETO.ProductLine

基本上,我想要得到的产品线与其各自的生产线&订单编号,并将它插入到MTO与ETO表。

当前代码:

代码语言:javascript
复制
UPDATE tbl_line_items INNER JOIN tbl_MTO_vs_ETO ON (tbl_line_items.Order_Number = tbl_MTO_vs_ETO.Order) AND (tbl_line_items.Line_Number = tbl_MTO_vs_ETO.Line) AND (tbl_line_items.Product_Line = tbl_MTO_vs_ETO.ProductLine) 
SET tbl_MTO_vs_ETO.ProductLine = [tbl_MTO_vs_ETO].[ProductLine]=[tbl_line_items].[Product_Line];

我的查询追加,但什么也不返回("You将要更新0行“)。我认为我应该使用UPDATE语句,因为记录已经存在,我最近添加了产品行列以进行进一步的筛选。

对于nbk--

我运行了一个SELECT和JOIN查询,并成功地提取了碎片顺序和行号,并为每个记录找到了产品线。现在的问题是,如何将其转换为更新查询?

代码:

代码语言:javascript
复制
SELECT tbl_line_items.Product_Line, tbl_line_items.Order_Number, tbl_line_items.Line_Number
FROM tbl_MTO_vs_ETO INNER JOIN tbl_line_items ON (tbl_MTO_vs_ETO.line = tbl_line_items.Line_Number) AND (tbl_MTO_vs_ETO.Order = tbl_line_items.Order_Number);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-29 21:21:10

你的SELECT有两个条件

代码语言:javascript
复制
SELECT 
    tbl_line_items.Product_Line,
    tbl_line_items.Order_Number,
    tbl_line_items.Line_Number
FROM
    tbl_MTO_vs_ETO
        INNER JOIN
    tbl_line_items ON (tbl_MTO_vs_ETO.line = tbl_line_items.Line_Number)
        AND (tbl_MTO_vs_ETO.Order = tbl_line_items.Order_Number);

但是你的UPDATE有三个

代码语言:javascript
复制
UPDATE tbl_line_items 
   INNER JOIN tbl_MTO_vs_ETO 
   ON (tbl_line_items.Order_Number = tbl_MTO_vs_ETO.Order) AND (tbl_line_items.Line_Number = tbl_MTO_vs_ETO.Line) AND (tbl_line_items.Product_Line = tbl_MTO_vs_ETO.ProductLine) 
SET tbl_MTO_vs_ETO.ProductLine = [tbl_MTO_vs_ETO].[ProductLine]=[tbl_line_items].[Product_Line];

必须满足这三个条件才能实现UPDATE

所以用吧

代码语言:javascript
复制
UPDATE 
    tbl_MTO_vs_ETO
        INNER JOIN
    tbl_line_items ON (tbl_MTO_vs_ETO.line = tbl_line_items.Line_Number)
        AND (tbl_MTO_vs_ETO.Order = tbl_line_items.Order_Number);
SET tbl_MTO_vs_ETO.ProductLine = [tbl_MTO_vs_ETO].[ProductLine]=[tbl_line_items].[Product_Line];

这样UPDATE就能工作

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71668513

复制
相关文章

相似问题

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