首頁  >  文章  >  資料庫  >  當子查詢傳回多於一行時,如何將子查詢中的多行插入 MySQL 表中?

當子查詢傳回多於一行時,如何將子查詢中的多行插入 MySQL 表中?

Patricia Arquette
Patricia Arquette原創
2024-11-02 15:08:29146瀏覽

How to Insert Multiple Rows from a Subquery into a MySQL Table When the Subquery Returns More Than One Row?

將子查詢中的多行插入到MySQL 表中

要將子查詢中的多行插入MySQL 表中,至關重要的是要確保子查詢僅傳回一行。在提供的程式碼片段中,插入查詢:

INSERT INTO Results (People, names)
VALUES
(
 (SELECT d.id FROM Names f JOIN People d ON d.id = f.id),
 ("Henry"),
);

嘗試將兩個值插入到「人員」和「名稱」欄位中。但是,第一個括號內的子查詢會傳回 d.id 的多行。這會導致錯誤“子查詢返回超過1 行。”

使用組合靜態字串的解決方案

插入靜態字串“Henry”,同時保留以下結果子查詢,如下修改查詢:

INSERT INTO Results (People, names)
SELECT d.id, 'Henry'
FROM Names f
JOIN People d ON d.id = f.id

透過使用逗號將靜態字串“Henry”與子查詢組合,查詢將每行的名稱列的值明確設定為“Henry”由子查詢傳回。這可確保查詢將子查詢的結果與指定值一起插入表中,而不會遇到錯誤。

以上是當子查詢傳回多於一行時,如何將子查詢中的多行插入 MySQL 表中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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