簡體   English   中英

SQL INSERT INTO結合值和選擇失敗

[英]Sql INSERT INTO combining value and select failure

我想插入兩個值,一個由固定數字填充,另一個是另一個表的ID。

現在我得到了錯誤

#1242-子查詢返回的行數超過1。

INSERT INTO table1 (value1, value2) VALUES 
(6 , (SELECT id FROM table2 WHERE name = 'Peter'))

也許你可以幫我。

如果要為table2中名稱為Peter的每個記錄插入記錄到table1中,則此方法應該有效。

此插入查詢將表2中名稱為“ Peter”的所有記錄插入表1中。 如果您只想插入一條記錄,則可以使用LIMIT如Macmee在其回答中所述

insert into dbo.table1
(
     value1,
     value2
)(
     select 
          6,
          table2.id 
     from 
          table2
     where
          name = 'Peter'
)

嘗試使用LIMIT 1

INSERT INTO table1 (value1, value2) VALUES (6 , (SELECT id FROM table2 WHERE name = 'Peter' LIMIT 1))

這樣,在嵌套查詢中(SELECT id FROM table2 WHERE name = 'Peter' LIMIT 1) ,它將僅返回第一個匹配項,並且插入應通過。

請記住,如果您打算為table2中名為“ Peter”的每一行插入新行,則只會插入第一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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