gpt4 book ai didi

MySQL 语法错误消息 "Operand should contain 1 column(s)"

转载 作者:行者123 更新时间:2023-11-30 00:41:06 28 4
gpt4 key购买 nike

我尝试运行以下语句:

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;

据我了解,应该将 temp_cheques 中的每条记录插入到 VOUCHER 中,其中 ID 和 DENOMINATION 字段对应于 BOOK 表中的条目(temp_cheques 来自数据库备份,我正在尝试以不同的格式重新创建该备份) )。但是,当我运行它时,出现错误:

Error: Operand should contain 1 column(s)
SQLState: 21000
ErrorCode: 1241

我在 SQuirrel 中运行此程序,并且没有遇到任何其他查询问题。我的查询语法有问题吗?

编辑:

BOOK的结构是:

ID  int(11)
START_NUMBER int(11)
UNITS int(11)
DENOMINATION double(5,2)

temp_cheques的结构是:

ID  int(11)
number varchar(20)

最佳答案

尝试从 SELECT 子句中删除括号。来自 Microsoft TechNet ,使用 SELECT 子句的 INSERT 语句的正确语法如下。

INSERT INTO MyTable  (PriKey, Description)
SELECT ForeignKey, Description
FROM SomeView
<小时/>

您收到的错误“SELECT 将检查超过 MAX_JOIN_SIZE 行;检查您的 WHERE 并使用 SET SQL_BIG_SELECTS=1 或 SET SQL_MAX_JOIN_SIZE=# 如果 SELECT 没问题。”,实际上是正确的,假设您有很多行BOOK 和 temp_cheques 中的行。您尝试查询两个表中的所有行并进行交叉引用,从而产生 m*n 大小的查询。 SQL Server 试图在执行可能较长的操作之前警告您这一点。

在运行此语句之前设置SQL_BIG_SELECTS = 1,然后重试。它应该可以工作,但请注意此操作可能需要很长时间。

关于MySQL 语法错误消息 "Operand should contain 1 column(s)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21766186/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com