將子查詢中的多行插入到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中文網其他相關文章!