将数据库中一个表的特定行插入另一个具有不同列的表

时间:2018-04-06 03:27:08

标签: mysql sql

我遇到了将数据从一个表移动到另一个表的问题。我有两个表,一个存储所有网站成员的用户,但有VIP会员在注册时获得随机点,而普通会员则不会。

+-----------+
|   Users   |
+-----------+
| User_id   |
| Usertype  |
| Firstname |
| Lastname  |
| Email     |
| Username  |
| Password  |
+-----------+

+-------------+
| VIP_Members |
+-------------+
| User_id     |
| Username    |
| Points      |
+-------------+

我想选择所有VIP会员(由Usertype确定)并将其移至 VIP会员表:

INSERT INTO Vip_Members (Points)
VALUES (ABS(CHECKSUM(NewId())) % 11)
SELECT User_id, Username
FROM Users
WHERE Usertype = 'vip';

1 个答案:

答案 0 :(得分:0)

您要在此处使用的语法是INSERT INTO ... SELECT。当您想在VALUES语句中插入文字常量时,主要使用INSERT关键字。

INSERT INTO Vip_Members (User_id, Username, Points)
SELECT User_id, Username, ABS(CHECKSUM(NewId())) % 11
FROM Users
WHERE Usertype = 'vip';

作为旁注,我不知道为什么要将用户从Users表移到单独的表中。我认为有一个类型列可以确定用户是否为VIP。