2010-04-01 59 views
0

什麼我有工作,這是我需要改進的:的MySQL插入數據

INSERT form_data (id,data_id, email) 
SELECT '',fk_form_joiner_id AS data_id 
    , value    AS email 
    FROM wp_contactform_submit_data 
WHERE form_key='your-email' 

這只是得到了電子郵件,現在這是偉大的,但還不夠,因爲我有一個好幾個不同的form_key值,我需要導入到不同的列,我知道我可以通過使用foreach循環和更新的php來完成,但這需要純粹在mysql中完成。

所以我怎麼做這樣的事情: 插入form_data(ID,數據,電子郵件,名字,姓氏等),選擇[..],選擇[..] ...

的數據是存儲在可能的最荒謬的方式,在一個表中,在一個小區內,與不同小區講什麼實際的數據是:http://drp.ly/Jhx3J(截圖)

請幫

回答

0

在你的問題不是很明顯,其中你想要的其他數據被存儲,但也許你正在尋找一些東西,像這樣:

INSERT form_data (id,data_id, email,city) 
SELECT A.fk_form_joiner_id AS data_id 
    , A.value    AS email 
    ,B.value    AS city 
    FROM wp_contactform_submit_data A, 
     wp_contactform_submit_data B 
    WHERE A.form_key='your-email' AND 
     B.form_key='your-city' and 
     A.fk_form_joiner_id=B.fk_form_joiner_id 

可以將此邏輯擴展爲輕鬆處理少數多個字段 - 如果一個或多個數據值有時會丟失,您必須在A和B之間進行外部聯接才能獲取所有記錄。

顯然你必須爲每一列創建一個新的連接,但是這需要以某種形式完成你的任務。

上wp_contactform_submit_data(fk_form_joiner_id,form_key)A股指數將會使這個查詢是相當有效的爲好。

+0

http://drp.ly/Jhx3J這裏的截圖,這一切都在一個表在一個單元格中,使用不同的單元格告訴我數據的位數。 這是愚蠢的,但是這是我有什麼,我需要在這個被放入不同的表,分配給相應的數據類型的細胞工作,因此所使用的WHERE子句中挑出電子郵件和導入它進入一個單元格,我需要爲每個值做同樣的事情。 – daulex 2010-04-01 12:53:26

+0

感謝您的數據屏幕截圖 - 這是我的理解。在我看來,我的想法是將表連接到查詢將起作用(儘管它變得複雜)。 – Elemental 2010-04-01 13:59:05

+0

增加了一些更多的細節,使我的意思更清晰 – Elemental 2010-04-01 14:05:10

0

這不是一個問題,你剛纔NEET加入到wp_contactform_submit_data幾次(每個值):

INSERT INTO form_data (data_id, email, name) 
SELECT fk_form_joiner_id as data_id, email, name 
FROM (SELECT fk_form_joiner_id, value as email 
     FROM wp_contactform_submit_data 
     WHERE form_key='your-email' 
    ) as emails 
JOIN (SELECT fk_form_joiner_id, value as name 
     FROM wp_contactform_submit_data 
     WHERE form_key='your-name') as names 
    USING (fk_form_joiner_id) 
;