2012-03-14 11 views
0

このシンプルなSQLのアウトを簡単に説明します。 crm_contact_idは、テーブル全体で同じ連絡先IDで更新されます。私はselectを行うときにfromクエリが等しいものとなるようにしようとしています。簡易アップデート

update events set crm_contact_id = c.id 
from events as evts 
inner join crm2.crm_retail_lead l on l.lead_number = evts.old_lead_number 
inner join crm_contacts c on c.old_contact_id = l.contact_id 

ありがとうございます。

+1

、あなたがあなたの最後にこの文を実行する場合は、あなたが得るだろうか伝えることができます....イベントからSELECT c.Idは、内側evtsとしてcrm2.crm_retail_lead l on l.lead_number = evts.old_lead_number内部結合crm_contacts c on c.old_contact_id = l.contact_id – Krishna

答えて

2

でクエリを作成します.....クエリ内の任意のWHERE句が置かれていない:

UPDATE events... FROM events as evts JOIN [other tables] 

あなたがイベントの2つの無関係なインスタンスを取得テーブル。 これはおそらくあなたが望むものではありません。修正版は次のようになります。私の終わりがないDBのセットアップと

update events evts set crm_contact_id = c.id 
from crm2.crm_retail_lead l 
inner join crm_contacts c on c.old_contact_id = l.contact_id 
where l.lead_number = evts.old_lead_number 
+0

パーフェクト。私は自分が間違っている場所を知ることができます。ありがとうございました。 – SibLiant

0

あなたが行うとwhere

update events set crm_contact_id = c.id 
from events as evts 
inner join crm2.crm_retail_lead l on l.lead_number = evts.old_lead_number 
inner join crm_contacts c on c.old_contact_id = l.contact_id 
WHERE column_name='value'