是否可以在一个查询中使用两个select语句将数据插入表中?

时间:2013-12-11 18:32:52

标签: sql sql-server

我正在使用数据库,其中我有3个表,一个是skill表,另一个是experience,第三个是Experience_skill表,在这个表中我现在有外键问题是外键也是主键。假设我将数据存储到技能表以及经验表中,如何在Experience_skill表中插入两个密钥数据。我尝试过以下查询。

insert into Experience_skill(eid, Skill_Id)
select eid 
from Experience 
where eid=2 
union
select Skill_Id 
from Skills 
where Skill_Id=2

错误我得到了:

  

INSERT语句的选择列表包含的项目少于插入列表。 SELECT值的数量必须与INSERT列的数量匹配。   比我试过这个。

insert into Experience_skill(eid)select eid from Experience where eid=2

它给了我这个错误:

  

无法将值NULL插入“Skill_Id”列,表'resume.dbo.Experience_skill';列不允许空值。 INSERT失败。   请帮帮我   这是表格的快照,第一个快照是技能表enter image description here

第二个是经验表enter image description here

这个是EXperience_skill表,我有我的外键enter image description here

1 个答案:

答案 0 :(得分:3)

使用INSERT INTO时,需要在SELECT的每个ROW中提供目标表中的所有列(不允许NULL)。