Я сталкиваюсь с проблемами перемещения данных из одной таблицы в другую. У меня есть две таблицы, одна из которых хранит всех пользователей, которые являются членами веб-сайта, однако есть 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';
Синтаксис, который вы хотите использовать здесь, - 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.