Sql 使用联接更新表

Sql 使用联接更新表,sql,oracle,Sql,Oracle,我试图通过在查询中传递值来更新表。请注意,该值不是来自另一个表。然而,我用来识别所有项目的关键是在另一个表中。我如何将这两种方法结合起来以确保更新正确的记录? 数据库:Oracle 10g 在Toad中运行查询 请帮忙 这就是我到目前为止所做的: UPDATE HCS.ITEMINVENTORY SET HCS.ITEMINVENTORY.BATCHGROUPING = 'ADMIXED' WHERE (ITEMINVENTORY.FACILITYCODE = 'B') AND (ITE

我试图通过在查询中传递值来更新表。请注意,该值不是来自另一个表。然而,我用来识别所有项目的关键是在另一个表中。我如何将这两种方法结合起来以确保更新正确的记录? 数据库:Oracle 10g 在Toad中运行查询 请帮忙

这就是我到目前为止所做的:

UPDATE HCS.ITEMINVENTORY
SET HCS.ITEMINVENTORY.BATCHGROUPING = 'ADMIXED'
WHERE (ITEMINVENTORY.FACILITYCODE = 'B')
    AND (ITEMINVENTORY.FORMULARYSTATUS = 'Y')
    AND (ITEMDISPENSESIZE.ITEMID = ITEMINVENTORY.ITEMID)"Notice the second table"
    AND (HCS.ITEMNUMBER IN (18501346,18800284)

如果只想在ITEMDISPENSESIZE中存在更新的位置应用更新,请使用exists子查询。像这样:

UPDATE HCS.ITEMINVENTORY
SET HCS.ITEMINVENTORY.BATCHGROUPING = 'ADMIXED'
WHERE (ITEMINVENTORY.FACILITYCODE = 'B')
    AND (ITEMINVENTORY.FORMULARYSTATUS = 'Y')
    AND EXISTS (
        SELECT 1
        FROM   ITEMDISPENSESIZE
        WHERE  ITEMDISPENSESIZE.ITEMID = ITEMINVENTORY.ITEMID
        AND    ITEMDISPENSESIZE.ITEMNUMBER IN ('18501346','18800284')
    );
试试这个:

update Table
   set column1 = 'new value'
   from table1 a, table2 b
   where a.column2 = x 
   and a.column3 = y
   and b.column4 = z 

是的,正如我所说的,HCS.ITEMNUMBER并没有引用更新语句中的任何内容。应该参考哪个表?ITEMNUMBER指的是表ItemSize。这是唯一一个将更新我要更新的项的键,它位于第二个表itemdispensesize中。好的,那么该子句应该是EXISTS的一部分。我编辑了我的答案。这可能是因为ITEMNUMBER不是数字字段。如果是这样的话,我在它周围加了引号。你查过这个了吗?就是这个!现在,我只需要把这些项目约700报价!有什么快速的建议吗?