高度なMySqlクエリ:別のテーブルの情報でテーブルを更新する

StackOverflow https://stackoverflow.com/questions/1202075

  •  05-07-2019
  •  | 
  •  

質問

mySqlのテーブルを別のテーブルのデータで更新したい。

2つのテーブル" people"があります。および「ビジネス」。 peopleテーブルは、「business_id」という列によってビジネステーブルにリンクされています。

必要なテーブル構造、主キーにスターを付けます(テーブル:列): 人:* business_id、* sort_order、email ビジネス:* 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 = ''; 

これは理にかなっていますか?可能ですか?

役に立ちましたか?

解決

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 = ''

他のヒント

注意、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 = '';

これを試してみてください、私にとってはうまくいきます。

Update table a, table b
Set a.importantField = b.importantField,
a.importantField2 = b.importantField2
where a.matchedfield = b.matchedfield;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top