【问题标题】:how to insert data with subquery that returns more than on value? [duplicate]如何使用返回值大于值的子查询插入数据? [复制]
【发布时间】:2023-01-09 16:47:26
【问题描述】:

我有两个表 company_listcompany_detailscompany_list表有一个company_id列,company_details有一些与company_id公司相关的信息。我想将数据插入 company_details 表中,而 company_id 不在 company_details 表中。 我尝试了以下查询,但它给了我一个错误。

INSERT INTO company_details (company_id,detail_found)
VALUES ((SELECT company_id FROM company_list WHERE company_id  NOT IN (SELECT company_id FROM company_details)), 'No data found');

错误是:

消息 512,级别 16,状态 1,第 27 行

子查询返回了 1 个以上的值。这是不允许的,当 子查询跟在 =、!=、<、<=、>、>= 之后,或者当子查询用作 一种表达。

该语句已终止。

如何使用返回多个值的子查询向表中插入数据?

【问题讨论】:

  • 使用简单的INSERT INTO . . . SELECT ... FROM查询

标签: sql sql-server sql-insert


【解决方案1】:

您可以使用 insert-select 语句(没有 values 子句),并将字符串文字作为选择的列之一进行查询:

INSERT INTO company_details (company_id,detail_found)
SELECT company_id, 'No data found' 
FROM   company_list 
WHERE  company_id NOT IN (SELECT company_id FROM company_details)

【讨论】:

  • 太感谢了。它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-12
  • 1970-01-01
  • 2012-11-21
相关资源
最近更新 更多