2012-11-02 40 views
0

我試圖將數據從一個表格移動到兩個新表格中,但我不確定如何以最好和最簡單的方式來執行此操作。將一個表格轉換爲兩個新表格

我在newsletter_users約2000行,看起來像這樣:

userid company email memberofgroup 

其中

memberofgroup 

是指newsletter_mailgroups整數。如果用戶想成爲不同組的成員,這不是最好的方式。然後會有相同電子郵件的x行。 2000個用戶×3或4個不同的組(我怎麼想的?)所以我做了兩個新表

newsletter_members看起來像這樣

userid email company 

和另一個表newsletter_member_of_group看起來像這樣:

field_member_uid field_user_id field_memberofgroup 

其中

field_user_id 

將包含用戶id來自newsletter_members和

field_memberofgroup 

將包含電子郵件組ID。 F.X.

field_user_id field_memberofgroup 
    2     6 
    2     4 
    2     8 
    3     1 
    5     6 

我怎麼能導出,然後導入它們以最好的方式,這樣的郵件不會在newsletter_members複製? - 我可能需要手動檢查以查看哪些用戶是多個郵件組的成員。

郵件組表:

1 Forhandlere 
2 Arkitekter og byggerådgivere 
3 Typehusfabrikanter 
4 Byggeentreprenører 
5 Murermestre 
6 Tømrermestre 
7 Tagdækkere 
8 Boligforeninger/Ejendomsselskaber 
9 Bygge-interesserede 
10 Tyske modtagere 
11 Landskabsarkitekter 
12 Norske arkitekter 
13 Svenske arkitekter 
14 Norske forhandlere 
15 Svenske forhandlere 
16 Brancherelaterede 
17 Svenske ansatte 
18 Norske ansatte 
19 Beijer Sverige 

回答

1

在幾個步驟的解決方案:

  • 瞭解創建newsletter_member_of_group

腳本:

CREATE TABLE newsletter_member_of_group(
    field_member_uid INT PRIMARY KEY AUTO_INCREMENT, 
    field_user_id INT, 
    field_memberofgroup INT 
); 

注意field_member_uid是AUTO_INCREMENT,它將幫助我們插入ID值。

  • 複製數據從newsletter_usersnewsletter_member_of_group

腳本:

INSERT INTO newsletter_member_of_group 
    SELECT NULL, userid, memberofgroup FROM newsletter_users; 
  • 創建newsletter_members表。我們有兩個變體:創建新表和複製數據,或者將newsletter_users重命名爲newsletter_members,並刪除memberofgroup字段。我選擇第二個變體。

腳本:

ALTER TABLE newsletter_users RENAME TO newsletter_members; 
ALTER TABLE newsletter_members DROP COLUMN memberofgroup; 
+0

謝謝你爲這個!我沒有想到只是改變現有的桌子!這樣我就會完全按照原樣獲得它!我正在重置ID並將其導入新的memberofgroup表!謝謝! –

相關問題