在这种情况下,我有下表,我需要根据user_id将user_sessions.session_str上的所有值移动到users.user_string。如何做到这一点?
**Schema (MySQL v5.7)**
CREATE TABLE users (
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
user_string varchar(20)
);
INSERT INTO users (user_string) VALUES (NULL);
INSERT INTO users (user_string) VALUES (NULL);
CREATE TABLE user_sessions (
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
user_id INT,
session_str varchar(20)
);
INSERT INTO user_sessions (user_id, session_str) VALUES (1,1234);
INSERT INTO user_sessions (user_id, session_str) VALUES (2,5678);
查询#1
SELECT
users.*,
user_sessions.session_str,
concat('I want ',session_str,' to be copied into users.user_string') as 'help'
FROM users
JOIN user_sessions on user_sessions.user_id = users.id;
id | user_string | session_str | 帮助
---|---|---|
1 | 1234 | 我希望1234复制到用户中。user_string |
2 | 5678 | 我希望将5678复制到用户中。user_string | [/tr>
然后不要在users表中插入null。使用insert into ... select ..
如下:
Insert into users
Select session_str from user_sessions;