2011-12-24 800 views
2

我有一個聯繫人管理系統和我的聯繫人的sql轉儲五六列數據,我想導入到三個特定的表。想知道最好的方法是什麼。我已經在我的聯繫人管理數據庫中上傳了SQL轉儲...其單個表格。MySQL查詢更新多個表

在CRM中的表需要在公司表只有...的ContactID和歌曲表:

  • companyID,
  • 的ContactID,
  • 添加日期(非必需)和
  • 筆記(不需要)

然後有第三個表,即聯繫表,它只需要contactname。

我已經將數據上傳到三個表中的每一個(不確定我的訂單是否正確),但現在需要更新第四個表(最初是sql轉儲)中的數據並將其與其他三個用其唯一標識符更新所有內容。

表結構:

+DUMP_CONTACTS 

id <<< I dont need this ID, the IDs given to each row in the CRM are the important ones. 

contact_name 

company 

year 

event_name 

event_description 

====Destination Tables==== 

+++CONTACTS TABLE++ 

*contactID < primary key 

*contact_name 

+++COMPANIES TABLE+++ 

*companyID < primary key 

*name 

*contact_ID 

*year 

++++Events++++ 
*EventID < primary key 

*companyID 

*contactID 

*eventname 

*description 
+0

到目前爲止試過了什麼? – Nonym 2011-12-24 08:05:51

+0

不確定要嘗試的是什麼......我現在在聯繫人表中有聯繫人ID和聯繫人姓名。然而,不知道我怎麼會得到contactID到公司表中,而不使用我的原始聯繫人的第四張表呢?我想我可以添加另一列公司名稱的聯繫人表,但即使...我從哪裏去。看起來像MATCHAGAINST可能需要使用/學習?任何在這裏查詢的幫助都會很棒。 – lcm 2011-12-24 08:24:39

+0

你可以嘗試修改你的文章,幷包括源表和目標表的表結構..並指出哪個列應該去哪裏,以及表之間的關係 – Nonym 2011-12-24 08:28:26

回答

0

有,我還是不明白你的文章的部分,所以我打算給你的SQL,然後你可以在測試環境中運行它們,我們可以從那裏和/或回去重新開始:

-- Populate CONTACTS_TABLE with contact_name from uploaded dump 
INSERT INTO CONTACTS_TABLE (contact_name) 
SELECT contact_name FROM DUMP_CONTACTS 

-- Populate COMPANIES with information from both CONTACTS_TABLE + dump 
INSERT INTO COMPANIES (name, contact_ID, year) 
SELECT d.company, c.contactID, d.year 
FROM DUMP_CONTACTS AS d 
    INNER JOIN CONTACTS_TABLE AS c 
    ON d.contact_name = c.contact_name 

-- Populate SONGS_TABLE with info from COMPANIES 
INSERT INTO SONGS_TABLE (companyID, contactID) 
SELECT cm.companyID, cm.contact_ID 
FROM COMPANIES AS cm 

-- Populate Events with info from COMPANIES + dump 
INSERT INTO Events (companyID, contactID, eventname, description) 
SELECT cm.companyID, cm.contact_ID, d.event_name, d.event_description 
FROM DUMP_CONTACTS AS d 
    INNER JOIN COMPANIES AS cm 
    ON d.company = cm.name 

我第一次填充CONTACTS_TABLE然後,因爲contactIDCOMPANIES需要記錄,從CONTACTS_TABLE插入記錄加入轉儲。 SONGS_TABLE直接從COMPANIES獲取數據,最後Events通過加入COMPANIES和轉儲獲取其數據。

+0

謝謝...我能夠把它放在一起。只是發佈了另一個問題,但如果你有時間看。我現在正在處理上面查殺mysql的最後一個查詢。 – lcm 2012-01-01 23:53:04