[英]insert into select for multiple columns, where only one column is from another table
[英]mysql multiple Insert where select many column from another table
我有以下数据:
表格1:
id common_criteria member_id
1 some 1000
2 some1 500
3 some 100
4 some 200
3 some1 2000
表2
id member_id
两个表上的id
列均为AUTOINCREMENT PRIMARY KEY
我需要在table2
插入三个新行(在这种情况下),其中table1
中的common_criteria
='some'
table2的预期结果:
id member_id
1 1000
2 100
3 200
我努力了:
INSERT into table2 (`member_id`)
VALUES (
SELECT `member_id` FROM table1 WHERE common_criteria = 'some'
)
但是我收到语法错误:
#1064-您的SQL语法有误; 在第1行的“ SELECT
member_id
FROM table1 WHERE common_criteria ='some')'附近,查看与您的MySQL服务器版本相对应的手册以获取正确的语法。
要从SELECT获得结果时,不需要VALUES部分。 相反,您可以将其简化为:
INSERT into table2 (`member_id`)
SELECT `member_id`
FROM table1
WHERE common_criteria = 'some'
它将插入SELECT返回的所有行。
附加说明(由于人们经常问这个问题):如果您遇到每次某些值都是静态的情况,则可以很容易地做到这一点:
INSERT into table2 (`member_id`, `some_other_field`)
SELECT `member_id`, 'Static Text'
FROM table1
WHERE common_criteria = 'some'
在这种情况下,无论由于SELECT而返回(插入)多少行,每次都会在每行中插入“静态文本”。
您可以这样做:
INSERT INTO table2 (`member_id`)
SELECT `member_id` FROM table1 WHERE common_criteria = 'some'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.