Конвертировать SELECT в оператор обновления - PullRequest
1 голос
/ 26 февраля 2009
SELECT t1.status, t3.guid, t3.objectID
FROM Table1 t1, Table2 t2, Table3 t3
WHERE t2.ID = t3.ID
   AND t1.ID = t2.ID
   AND t3.Guid IN ('', '', '')

Как я могу преобразовать это в оператор обновления, где я установил t1.status = 1?

Ответы [ 8 ]

6 голосов
/ 26 февраля 2009

Я бы начал с преобразования его в соединение вместо «классического соединения»:

select t1.status, t3.guid, t3.objectID
from Table1 t1
inner join Table2 t2 on t2.ID = t1.ID
inner join Table3 t3 on t3.ID = t2.ID
where t3.Guid in ('', '', '')

Затем вы можете просто скопировать оператор SELECT, добавить обновление и установить оператор:

update t1
set status = 1
from Table1 t1
inner join Table2 t2 on t2.ID = t1.ID
inner join Table3 t3 on t3.ID = t2.ID
where t3.Guid in ('', '', '')
2 голосов
/ 26 февраля 2009

Попробуйте что-то вроде этого:

update Table1
set status = 1
from Table1 t1
    inner join Table2 t2 on t1.ID = t2.ID
    inner join Table3 t3 on t2.ID = t3.ID
where t3.Guid IN ('', '', '');
1 голос
/ 26 февраля 2009
UPDATE Table1
SET status = 1
FROM Table1 t1, Table2 t2, Table3 t3
WHERE t2.ID = t3.ID
   AND t1.ID = t2.ID
   AND t3.Guid IN ('', '', '')
0 голосов
/ 11 апреля 2012
update t1 set t1.status=(select 1 from Table1 t1, Table2 t2, Table3 t3 WHERE t2.ID = t3.ID   AND t1.ID = t2.ID  AND t3.Guid IN ('', '', ''))
0 голосов
/ 26 февраля 2009
MERGE
INTO Table1 t1
USING
  (
  SELECT t2.id
  FROM Table2 t2, Table3 t3
  WHERE 
    t3.ID = t2.id
    AND t3.GUID IN ('', '', '')
 ) to
ON t1.id = to.id
WHEN MATCHED THEN
  UPDATE
  SET t1.status = 1
0 голосов
/ 26 февраля 2009

Я верю в MS SQL Server (но не в Oracle), вы можете написать:

UPDATE TABLE1 
set t1.status = 1
FROM Table1 t1, Table2 t2, Table3 t3
WHERE t2.ID = t3.ID
   AND t1.ID = t2.ID
   AND t3.Guid IN ('', '', '')
0 голосов
/ 26 февраля 2009
UPDATE Table1 set status = 1 
from table2 t2, table 3 t3 
where t2.ID = t3.ID 
and Table1.ID = t2.ID 
and t3.GUID in ('','','')
0 голосов
/ 26 февраля 2009
update Table1
set status = 1
FROM Table1 t1, Table2 t2, Table3 t3
WHERE t2.ID = t3.ID
   AND t1.ID = t2.ID
   AND t3.Guid IN ('', '', '')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...