0

私は2つのテーブルを持っています:

Table Name: One
id  | status
----+--------
1   | 1
2   | 1
3   | 1

Table Name: Two
id  | model
----+--------
1   | m001
2   | m002
3   | m003

のステータスを に変更したいとしましょm0010。SQLステートメントを使用してこれを達成するにはどうすればよいですか? つまり、モデル = m001 の場合、ID を取得し、table.one に移動して、ステータスを 0 に変更します。

4

2 に答える 2

2
   UPDATE TabelOne as a SET Status = 0
   WHERE a.id = (select id from two where model = 'm001')

私のSQL -

   UPDATE TabelOne as a 
   INNER JOIN two as b ON a.id = b.id and b.model = 'm001'
   SET Status = 0
于 2012-12-13T09:54:13.843 に答える
2

について言及していないのでRDBMS、次のいずれかを試してください。

為にMySQL

UPDATE  One a
        INNER JOIN Two b
            ON a.ID = b.ID
SET     a.Status = 0
WHERE   b.model = 'm001'

為にMSSQL

UPDATE  a
SET     a.Status = 0
FROM    One a
        INNER JOIN Two b
            ON a.ID = b.ID
WHERE   b.model = 'm001'

他の DBMS で動作するもの

UPDATE  One 
SET     Status = 0
WHERE   ID = (  SELECT ID
                FROM two 
                WHERE model = 'm001')
于 2012-12-13T09:54:03.033 に答える