簡體   English   中英

將兩列從一個表復制到另一個表

[英]Copying two columns from one table to another

在其他任何地方都找不到我正在尋找的東西。

所以我有表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不是我的強項。

更新:我在嘗試簡化表格時更新了上面的表格,但得到的解決方案卻是錯誤的。

您可以使用INSERT - SELECT語句:

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

您可以在SELECT部件的每個字段上放置另一個字段,甚至可以放置靜態數據。 我將null只是為了說明。

只要記住SELECT提取的任何內容都會插入INSERT語句所說的表中(因此您可以在SELECT部分使用WHEREGROUP BYHAVING等子句)。

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

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插入一行即可。

暫無
暫無

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

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