2016-01-21 199 views
-1

找不到我在其他地方準確找到的內容。將兩列從一張表複製到另一張

所以,我有表1

users 
---------- 

id 
username 
password 
bio 
isuser 
email 

和表2

wp_users 
---------- 

id 
user_login 
nice_username 
password 
email 

有在 'wp_users' 表500行。我想將'id'和'user_login'複製到每個行的用戶表('id'和'username')中。

我該怎麼做? MySQL不是我的強項大聲笑。

更新:我更新了上面的表格,因爲我試圖簡化它,但作爲回報得到了錯誤的解決方案。

+1

請參閱:http://stackoverflow.com/questions/11168402/mysql-copy-selected-fields-from-one-table-to-another –

+0

沒有正確輸入我的問題。我沒有提到的表格中還有其他值。上面的答案只選擇一列插入到另一個表中,我想選擇兩個而不知道這個的格式。謝謝(我已更新我的問題) –

+0

請參閱:http://stackoverflow.com/questions/11517913/how-to-copy-some-column-from-a-table-to-another-mysql –

回答

1

您可以使用INSERT - SELECT聲明:

INSERT INTO `users` (id,username,password,bio,isuser,email) SELECT id, 
user_login,null,null,null,null FROM `wp_users`; 

你可以把其他領域,甚至靜態數據的SELECT部分的每個領域。我只是爲了說明而設置了空值。

只要記住,任何事物的SELECT取將在INSERT聲明說,表中插入(這樣你就可以在SELECT部分使用條款像WHEREGROUP BYHAVING等)。

+0

謝謝!完善 –

0

我相信你正在尋找一個簡單的插入語句:

INSERT INTO users (id,username) 
SELECT W.id, 
     W.user_login 
FROM wp_users W 
WHERE NOT EXISTS (SELECT NULL 
        FROM users U 
        WHERE U.ID = W.ID); 

我假設在用戶表中的其他列是空的,如果不是,你可以添加更多的列與值的select語句在你想要的其他專欄。

你還沒有提到任何其他鍵或約束,所以我假設沒有任何。

我還在WHERE子句中提供了一個檢查來查看相同ID是否已存在一行,因此您只爲每個ID插入一行。

相關問題