2009-07-29 66 views
33

我想用另一個表中的數據更新mySql中的表。高級MySql查詢:從另一個表中獲取信息更新表

我有兩張桌子「人」和「商業」。人員表格通過名爲「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 2016-02-28 23:35:45

12

注意,如果排序順序爲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 = ''; 
相關問題