1

やりたいことをするために正しい関数を使用しているかどうかはわかりません。これまでのコードは次のとおりです。

insert into assets(owner)
(select a.Username as whatIwant
from dbo.DIRECTORY a join dbo.ASSETS b
on a.Ext = b.Ext)

アセットが関連付けられている内線番号の列 (ext) を持つアセット (dbo.assets) を含むテーブルが 1 つあります。もう 1 つのテーブル (dbo.directory) には、電話の内線番号 (内線番号) がその内線番号 (ユーザー名) に存在する人の名前に関連付けられた列があります。

私がやりたいのは、電話の内線番号に関連付けられている人のユーザー名を dbo.assets の新しい列である所有者の下に挿入することです。したがって、ext はユーザー名と一致する必要があります。代わりにマージを使用する必要がありますか?

4

1 に答える 1

1

使用しているRDMSについては言及していません。どちらの方法でも、最初に列をテーブルに追加する必要があり、次に列の値を設定する行を更新します。SQL Server では、次のようになります。

ALTER TABLE assets ADD owner VARCHAR(20) NULL



update a 
set a.owner = b.username
from assets a
inner join directory b on a.ext=b.ext
于 2013-03-20T22:57:17.703 に答える