![](/img/trans.png)
[英]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.