2014-07-07 80 views
-1

我想更新基於讀取另一個表中的值的表。MySQL更新內部加入

UPDATE contacts_cstm set ld_dt_crtd_c = '2014-06-11 12:26:17' 
WHERE **id = 'b0bc2ccf-ddfe-81b1-a278-53ba8bd0a93f'** AND deleted=0 

然而idcontacts表中的列。

+0

兩個表後的DDL。 –

+0

如果'contacts_cstm'表與您的'contacts'表有外鍵關係,則您不需要內連接。在SQL查詢開始失控之前,您可能需要考慮「正常化」數據庫。 http://en.wikipedia.org/wiki/Database_normalization –

+0

誰說,他沒有與聯繫人表的外鍵?你只是假設基於名稱'id'。 – fancyPants

回答

1
UPDATE contacts_cstm 
INNER JOIN contacts ON contacts.whatever_column = contacts_cstm.whatever_column 
set ld_dt_crtd_c = '2014-06-11 12:26:17' WHERE id = 'b0bc2ccf-ddfe-81b1-a278-53ba8bd0a93f' AND deleted=0 
0

你可以試試這個例子

UPDATE 
    Sales_Import 
SET 
    Sales_Import.AccountNumber = RAN.AccountNumber 
FROM 
    Sales_Import SI 
INNER JOIN 
    RetrieveAccountNumber RAN 
ON 
SI.LeadID = RAN.LeadID 

UPDATE

UPDATE contacts_cstm 
SET  ld_dt_crtd_c = '2014-06-11 12:26:17' 
FROM contacts_cstm cc 
     INNER JOIN contacts c ON cc.id = c.id 
WHERE cc.deleted = 0 
+2

你的回答應該與問題相關,避免發佈你自己的例子。 –

+0

您錯過了與加入的ID字段匹配的where子句,可能會毀壞他的整個數據庫。 – Synchro