2

2 つのテーブルをセットアップしました。セットアップの基本的な例を次に示します。

 Table1           Table2
 ____________     ____________
|id   |date  |   |id   |stuff |
|_____|______|   |_____|______|

したがって、両方に id 列があります。この方法で table1 を更新しようとしています:

update Table1
set [date] = (select [stuff] 
              from Table2 
              where Table2.id = id)

ただし、 の行では、 fromの代わりにwhere Table2.id = idfrom の id フィールドを使用しています。Table2Table1

しようとするとwhere Table2.id = Table1.id、エラーが発生します。Table2 のサブクエリで使用するために、行ごとに Table1 の ID を追跡し続けるにはどうすればよいですか?

4

3 に答える 3

4

内部クエリ内の id をテーブル 1 に参照する必要があります。これで問題が解決するはずです。

update Table1
set Table1.[date] = (select Table2.[stuff] 
                     from Table2
                     where Table2.id = Table1.id)
于 2013-03-01T17:45:12.807 に答える
1

を使用してこれを試してくださいJoin

Update t1 set t1.[date] = t2.[stuff]
from Table1 t1 
      join Table2 t2 on t1.id = t2.id
于 2013-03-01T17:46:35.843 に答える
1

これが結合バージョンです。

update  a
set     a.[date] = b.[stuff]
FROM    Table1  a
        INNER JOIN Table2 b
           ON a.ID = b.ID
于 2013-03-01T17:46:36.593 に答える