簡體   English   中英

MySQL多插入從另一個表中選擇多列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM