クエリとエラー
以下に示すように、SELECT 句を使用して INSERT ステートメントを実行しようとすると、エラー:
INSERT INTO VOUCHER (VOUCHER_NUMBER, BOOK_ID, DENOMINATION) SELECT (a.number, b.ID, b.DENOMINATION) FROM temp_cheques a, BOOK b WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
表示されるエラー メッセージは次のとおりです:
Error: Operand should contain 1 column(s) SQLState: 21000 ErrorCode: 1241
構文の修正
このエラーは、SELECT の構文の問題を示しています。句。これを解決するには、SELECT 句から括弧を削除し、次のように記述します。
INSERT INTO VOUCHER (VOUCHER_NUMBER, BOOK_ID, DENOMINATION) SELECT a.number, b.ID, b.DENOMINATION FROM temp_cheques a, BOOK b WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
説明
SELECT 句を使用した INSERT ステートメントの正しい構文SELECT 句は、で囲まれた複数の列ではなく、単一の列を返す必要があります。
その他の考慮事項
構文を修正した後も引き続き問題が発生する場合は、次の点を考慮してください。
以上がMySQL INSERT ... SELECT エラー: 「オペランドには 1 つの列が含まれている必要がある」のはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。