ホームページ  >  記事  >  データベース  >  サブクエリが複数の行を返す場合、サブクエリから複数の行を 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 テーブルに複数の行を挿入するには、次のことを確認することが重要ですサブクエリが 1 つの行のみを返すことを確認します。提供されたコード スニペットでは、挿入クエリ:

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

は、People 列と names 列に 2 つの値を挿入しようとします。ただし、最初のかっこ内のサブクエリは d.id に対して複数の行を返します。これにより、「サブクエリは複数の行を返します。」というエラーが発生します。

静的文字列を結合したソリューション

結果を保持しながら静的文字列 "Henry" を挿入するには

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

コンマを使用して静的文字列「Henry」とサブクエリを組み合わせることで、クエリは各行の names 列の値を明示的に「Henry」に設定します。サブクエリによって返されます。これにより、クエリはエラーが発生することなく、サブクエリの結果と指定された値をテーブルに挿入します。

以上がサブクエリが複数の行を返す場合、サブクエリから複数の行を MySQL テーブルに挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。