2011-08-12 26 views
2

以下のSQLは、表から異なる行を選択し、3番目の表に挿入します。それはうまく動作します。テーブル内の値をルックアップして別のテーブルに挿入するにはどうすればよいですか?

宛先表に挿入する第3列(STID)があります。 SourceDataテーブルには、列名STFPがあります。私は第3のテーブル、STSテーブルでSTFPの値を調べ、STIDの値を取得する必要があります。 STIDの価値をどうやって得るのですか?

INSERT INTO DestinationTable(CTYFP, CTYNAME) 
SELECT DISTINCT CTYFP , CTYNAME 
FROM SourceData 

答えて

2

ただ、他のテーブルへの結合:

INSERT INTO DestinationTable (CTYFP, CTYNAME, STFP) 
SELECT DISTINCT sd.CTYFP, sd.CTYNAME, STS.STFP 
FROM SourceData sd 
JOIN STS on SIS.STID = sd.STID; 

注:あなたの質問は、テーブルの列名を投稿していなかったので、私は推測しています。実際の列名に合わせて調整する必要があるかもしれません。

+0

投稿する前に、私はこれを数回を試み、私の参加動作しませんでした。私は何が間違っていたのか分かりませんが、あなたのソリューションは機能します。ありがとう! – DenaliHardtail

0
INSERT INTO DestinationTable(CTYFP, CTYNAME, STFP) 
SELECT DISTINCT CTYFP , CTYNAME, STFP 
FROM SourceData INNER JOIN ThirdTable on SourceData.Id = ThirdTable.SomeKey 
2

私はあなたを理解していた場合、これは動作するはずです:

INSERT INTO DestinationTable(CTYFP, CTYNAME, STID) 
SELECT DISTINCT SourceData.CTYFP , SourceData.CTYNAME, STS.STID 
FROM SourceData 
    INNER JOIN STS ON SourceData.STFP = STS.STFP 
関連する問題