2015-08-13 70 views
0

在過去的一兩個小時內,我一直無法將數據從我的舊錶傳輸到WordPress usermeta表。我的查詢到目前爲止是這樣的:MySQL將數據複製到另一個表WHERE ID相同

UPDATE bitnami_wordpress.wp_usermeta 
SET bitnami_wordpress.wp_usermeta.meta_value = customer_db.customer_table.LastName 
FROM customer_db.customer_table, bitnami_wordpress.wp_usermeta 
WHERE customer_db.customer_table.CompanyID = bitnami_wordpress.wp_usermeta.user_id 
AND bitnami_wordpress.wp_usermeta.meta_key = 'last_name' 

但是這是一個不行;

我想給LastName場從CUSTOMER_TABLE複製到meta_value田野上wp_usermeta表,其中CompanyIDCUSTOMER_TABLE是一樣的,在user_metauser_id

基本上給WordPress表中的每個人一個姓氏(和名字相同)。

對於我錯誤的MySQL代碼抱歉,但任何輸入都非常感謝,所以我可以爲未來學習。

的錯誤是:

MySQL表示:文件1064 - 您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的正確語法手冊「FROM rbaukcom_rbacms.supportpassword,bitnami_wordpress.wp_usermeta WHERE rbau」在行3

+0

你不能在'UPDATE'中使用'FROM' ... – Legionar

+0

哦?這是一個MySQL的東西?我認爲你可以在常規的SQL ..我猜這是不同的MySQL呢? – Ridai

回答

2

您需要使用JOIN UPDATE,也注意到,您正在使用不同的數據庫,因此需要確保用戶做更新應該有機會獲得他們兩個

update bitnami_wordpress.wp_usermeta um 
join customer_db.customer_table ct 
on ct.CompanyID = um.user_id 
set um.meta_value = ct.user_id 
where 
um.meta_key = 'last_name' 
+0

哦,我明白了!你是否使用'um'和'ct'作爲別名,而不使用'as'?所以'開'是進行ID比較的地方。這是否將'um.meta_value'設置爲user_id WHERE last_name是?或者我錯過了什麼? – Ridai

+0

這就是正確的,'as'不是強制性的。我剛剛重寫了你的邏輯,還注意到你可以將where子句移到inner join中的連接子句中,因爲它會執行相同的操作。 '在ct.CompanyID = um.user_id和um.meta_key ='last_name'' –

+0

非常感謝!這個問題和它應該有的一樣,我學到了一些東西。 – Ridai

2

這是語法

UPDATE bitnami_wordpress.wp_usermeta as t1 inner join customer_db.customer_table as t2 
ON t2.CompanyID = t1.user_id 
     AND t1.meta_key = 'last_name' 
SET t1.meta_value = t2.LastName 
+0

這給了我一個不同的視角來學習,因爲它與其他答案不同。感謝你! – Ridai

相關問題