2017-08-08 153 views
1

我試圖從另一個表中更新一個表,查詢將所有字段customers.entry_company_tax_id設置爲「NULL」,這對我來說沒有意義。MySql從另一個表更新一個表失敗

這裏是查詢,有人可以告訴我我做錯了什麼嗎?

UPDATE customers 
    SET customers.entry_company_tax_id = (
     SELECT prospects.account 
     FROM prospects 
     WHERE prospects.prospect = customers.entry_company_tax_id 
    ); 

回答

1

如果沒有比賽,他們將被設置爲NULL

我會用JOIN語法更新開始:

UPDATE customers c JOIN 
     prospects p 
     ON p.prospect = c.entry_company_tax_id 
    SET c.entry_company_tax_id = p.account; 

這樣做的優勢在於,它將只更新匹配的記錄 - 所以沒有新的NULL值(除非p.accountNULL)。

然後,您可以調查這兩個表是否是正確的JOIN鍵。您是否使用entry_company_tax_id既用於JOIN也用於字段值?

+0

潛在客戶數據庫有一些信息,但不是全部。前景有以下領域「前景」和「賬戶」。公司有「entry_company_tax_id」,並且我想在prospects.prospect = company.entry_company_tax_id時更新company.entry_company_tax_id與prospects.accounts。上面的查詢會如何工作? – Sandwick

+0

@Sandwick。 。 。表格之間的鏈接需要正確。如果您現在正在獲取所有「NULL」,則可能是使用了錯誤的列。 –

+0

您的查詢工作並解決了我的問題! – Sandwick