Обновить таблицу с помощью соединения - PullRequest
0 голосов
/ 12 мая 2011

Я пытаюсь обновить таблицу, передав значение в запросе. Обратите внимание, что значение не приходит из другой таблицы. Однако ключ, который я использую для определения элемента, который является общим для всех, находится в другой таблице. Как мне присоединиться к двум, чтобы убедиться, что я обновляю правильные записи? База данных: 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)

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Если вы хотите применить обновление только в том случае, если оно существует в 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')
    );
0 голосов
/ 12 мая 2011

Попробуйте это:

update Table
   set column1 = 'new value'
   from table1 a, table2 b
   where a.column2 = x 
   and a.column3 = y
   and b.column4 = z 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...