2017-08-08 9 views
1

別のテーブルから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; 

これは、それが唯一の一致するレコードを更新する利点がある - (p.accountNULLでない限り)ので、新しいNULL値を。

次に、それが2つのテーブルの正しいJOINキーであるかどうかを調べることができます。使用していますentry_company_tax_idは、JOINとフィールド値の両方に使用されていますか?

+0

prospectデータベースにはいくつかの情報がありますが、すべてではありません。見通しには、以下のフィールド "見込み客"と "口座"があります。会社には「entry_company_tax_id」があり、prospects.prospect = company.entry_company_tax_idのときはprospects.accountsでcompany.entry_company_tax_idを更新したいと思います。上のクエリはうまくいくでしょうか? @Sandwick。 – Sandwick

+0

。 。テーブル間のリンクは正しい必要があります。現在 'NULL'をすべて取得している場合は、間違った列を使用している可能性があります。 –

+0

あなたの質問は機能し、私の問題を解決しました! – Sandwick

関連する問題