0

私は 3 つのテーブルを持っています。たとえば、これら 3 つのテーブルを結合してフィールドを作成RELATIONS,PERSON,COMPANY する必要があるとします。私の要件は次のようなものですUPDATE active_flagPERSON'I'/'A'

UPDATE PERSON p
SET p.active_flag ='I'
FROM PERSON p,RELATIONS r,COMPANY c
WHERE p.email ='email@gmail.com'
AND c.rel_id = r.id
AND r.dep_id = '1234567'
AND r.book_id = '1234567'

どうやってやるの??

4

2 に答える 2

1

-- 結合については不明

UPDATE p
SET 
    p.[active_flag] ='I'
FROM Person p
    INNER JOIN Relations r ON
        r.[vNumber] = p.[vesionNo]
    INNER JOIN Company c ON
        c.[rel_id] = r.[id]
WHERE
    p.[email] ='email@gmail.com'
AND r.[dep_id] = '1234567' 
AND r.[book_id] = '1234567'
于 2012-08-16T09:23:29.163 に答える
1
merge into person p
using (
       select id
       FROM PERSON p,RELATIONS r,COMPANY c
       WHERE p.email ='email@gmail.com'
             AND c.rel_id = r.id
             AND r.dep_id = '1234567'
             AND r.book_id = '1234567'
      ) pu
on (pu.id = p.id)
when matched then update set p.active_flag ='I'
于 2012-08-16T11:31:07.793 に答える