41

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

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

必要なテーブル構造、主キーにスターが付けられています(テーブル:列):人:* business_id、* sort_order、emailビジネス:* business_id、email

ビジネステーブルのメール列を、人のテーブルからのメールで更新したいと思います。次のようになります(ここで何かが不足していることはわかっています)。

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

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

4

3 に答える 3

115
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 = ''
于 2009-07-29T18:19:19.423 に答える
16

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 = '';
于 2009-07-29T19:34:51.613 に答える