我有两个表company_list
和company_details
。company_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)