2009-07-29 18 views
33

mySqlのテーブルを別のテーブルのデータで更新したいと思います。高度なMySqlクエリ:別のテーブルの情報でテーブルを更新

私は2つのテーブル "人"と "ビジネス"を持っています。 peopleテーブルは、 "business_id"というカラムによってビジネステーブルにリンクされています。

主キーが主演している、必要なテーブル構造、(表:列): 人々:* business_id、* SORT_ORDER、電子メール ビジネス:私はビジネステーブルの電子メールの列を更新したいと思います* business_id、電子メール

このような人のテーブルからの電子メールでは、私はここに何かがないことを知っています:

UPDATE business b SET email = (SELECT email from People p where p.business_id = b.business_id AND sort_order = '1') WHERE b.email = ''; 

これは意味がありますか?出来ますか?

答えて

86
UPDATE business b, people p 
    SET b.email = p.email 
WHERE b.business_id = p.business_id 
    AND p.sort_order = '1' 
    AND b.email = '' 
+0

非常に素晴らしいが、私の方からは、3秒を要し – NineCattoRules

12

注SORT_ORDERがINTの場合は、その後、使用しない「1」 - 1を使用します。

UPDATE business b 
JOIN People p 
ON p.business_id = b.business_id 
AND p.sort_order = '1' 
SET b.email = p.email 
WHERE b.email = ''; 
関連する問題