2012-01-30 16 views
0

私は2つのテーブルdata1とdata2を持っています。 Data1にはemailaddressとnameという2つの列が含まれていますが、name列は空です。MySQLは、テーブル2に一致するレコードが見つかると、データをテーブル1に挿入します。

emailaddress name 
email1 
email2 
email3 

データ2も含まれて2列、EMAILADDRESSと名前が含まれており、DATA1よりも多くのエントリーがあり、私はのData1とData2の電子メールアドレス欄を比較SQLクエリを記述しようとしている

email address name 
email1   name1 
email1b   name1b 
email2   name2 
email2b   name2b 
email3   name3 
email3b   name3b 

一致するものが見つかると、Data2の関連する名前がdata1の対応する名前フィールドに挿入されます。クエリが

emailaddress name 
email1   name1 
email2   name2 
email3   name3 

を実行された後

のData1は、私はちょうどこれを行う方法を見つけ出すように見えることはできません。このようになるはずです。どんな助けでも大歓迎です。

答えて

1

これを試してみてください:

UPDATE data1 a, Data2 b 
SET a.name= b.name 
WHERE a.emailaddress = b.emailaddress 
+0

をこれは私が入力しようとしていたまさにです。 –

+0

@ nolt2232 完了!これは素晴らしいことでした。ご協力ありがとうございました。 最後にもう一つ、「a」と「b」は正確に何ですか?これらの変数はありますか? – user1177227

+0

これらはテーブル名のエイリアスです。ちょうどショートカットですので、 "Data1"をどこにでも入力する代わりに "a"と入力することができます。 – nolt2232

0

これを試す

これは、結合されたテーブルの結果を表示します。

SELECT a.emailaddress, 
     b.name 
FROM Data1 a INNER JOIN Data2 b 
       ON a.EmailAddress = b.emailaddress 

UPDATE

このクエリはデータ1テーブルを更新します。

UPDATE a 
    SET a.name = b.name 
    FROM Data1 a INNER JOIN Data2 b 
       ON a.EmailAddress = b.emailaddress 
関連する問題