首頁 >資料庫 >mysql教程 >如何使用子查詢正確地將多個值插入表中?

如何使用子查詢正確地將多個值插入表中?

Susan Sarandon
Susan Sarandon原創
2025-01-05 20:11:44365瀏覽

How to Correctly Insert Multiple Values into a Table Using a Subquery?

使用子查詢將值插入表中

使用具有多個結果的子查詢將值插入到表中可能具有挑戰性。考慮這樣的場景:您有兩個表,文章和價格,並且您希望根據從文章獲取的特定 ID 將條目插入價格中。

一種經常導致 SQL 錯誤的常見方法是使用VALUES 子句中的子查詢:

INSERT INTO prices (group, id, price) 
VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50);

此查詢將導致錯誤,因為子查詢會傳回多個結果。

正確的做法就是在INSERT查詢中使用select語句,對常數欄位進行硬編碼:

insert into prices (group, id, price)
select 
    7, articleId, 1.50
from article where name like 'ABC%';

透過將常數欄位與子查詢分離,可以保證子查詢的每個結果只插入一行。

以上是如何使用子查詢正確地將多個值插入表中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn