簡體   English   中英

MySQL查詢更新多個表

[英]MySQL Query Update Multiple Tables

我有一個聯系人管理系統和一個帶有五六列數據的聯系人的sql轉儲,我想將其導入三個特定的表中。 想知道解決此問題的最佳方法是什么。 我已經在我的聯系人管理數據庫中上載了sql dump ...它的單個表。

crm中的表僅在companys表中需要contactID ...,而在songs表中則需要:

  • 公司編號,
  • contactID,
  • 添加日期(不需要)和
  • 筆記(不需要)

然后是第三個表,即僅需要聯系人姓名的聯系人表。

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

表結構:

+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

您的帖子中有些部分我仍然不了解,因此我將向您提供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 ,然后,由於COMPANIES記錄需要使用contactID ,因此請從CONTACTS_TABLE插入記錄以加入轉儲。 SONGS_TABLE直接從COMPANIES獲取數據,最后, Events通過將COMPANIES和轉儲結合起來獲取其數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM