2016-11-02 13 views
1

今日私のテーブル構造が変更され、 'Country'フィールド/テーブルが作成されました。2番目のフィールドに基づいてあるテーブルから別のテーブルにコピーするUPDATEクエリ

私は何千ものレコードを持っています。 CityIDには、データベースが作成されてからCityルックアップテーブルのIDが入力されています。現在、CountryIDは新しいフィールドとして空です。

私は各CityIDをCountryIDに関連づけ始めました。たとえば、ニューヨーク市のCityID = "25"、米国のCountryID = "1"なので、これらの値は表に入力されます。

Main.CityID =「25」すべてのレコードのために、それが自動的にMain.CountryID = 1

んを挿入する必要がありますので、私は理にかなっている、遡及Main.CountryIDを更新しますか?

マイメインテーブル:

MainID 
Name 
Address etc. 
CityID 
CountryID (Empty) 

マイテーブル

CityID 
City 
CountryID 

マイテーブル

CountryID 
Country 

Apologie長引く質問のsは、それは長い1日だった...

答えて

1

City表とMainテーブルの更新に参加してください:

UPDATE Main a 
INNER JOIN City b 
    ON a.CityID = b.CityID 
SET a.CountryID = b.CountryID 
+0

私は118の別々の都市と約20の異なる国々を持っているので、1000以上のレコードにまたがっています。 'City'テーブルを参考にして、それらを一括して更新する必要があります。 – user1708538

+0

私の答えが更新されました。質問の文言は不明です。 –

1

あなたは市表中の値は、上のメインテーブルの列を更新していたよう市のテーブルとの結合の基礎

これを試して、私はこれがうまくいきたいです。

Update t1 
    set t1.CountryID = t2.CountryID 
    FROM Main AS t1 
    INNER JOIN City AS t2 ON t1.CityID = t2.CityID 
0

これを試してみてください。私はすでにそれを試してみます。

UPDATE mainid a JOIN city b 
    ON a.cityID = b.cityID 
SET a.countryID = b.countryID 

ここで説明します。都市IDに基づいてcountryIDを取得する場合は を入力してください。テーブルMainIDとテーブルのcityIDを結合する必要があります。そのテーブルにはのcityIDとcountryIDがあるからです。だから、mainid a JOIN city b a.cityID = b.cityIDset a.countryID = b.countryID

+0

OPはなぜ「これを試してください」? **良い答え**は、何が行われたのか、それがOPのためにだけでなく、この質問を見つけるかもしれないあなたの答えを読んでいる将来の訪問者のために、そのように行われた理由について、常に説明します。 –

関連する問題