如何插入数据与子查询返回多于一个值?



我有两个表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');

错误是:

Msg 512, 16层,状态1,27行

子查询返回多个值。这是不允许的子查询在=,!=,<, <=,>,>=或子查询用作一个表达式。

语句已被终止。

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

您可以使用插入-选择语句(不包含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)

相关内容

  • 没有找到相关文章

最新更新