是否可以使用多个表中的数据来执行INSERT INTO SELECT语句?

时间:2019-03-27 16:02:39

标签: sql vb.net ms-access

上述问题。我当前使用的SQL代码如下:

fetch('https://api.github.com/users/KrunalLathiya')
.then(res => res.json())
.then(json => {
  this.setState({
    graphData: json,
  })
});

当我尝试运行此查询时,收到以下错误消息:

  

“查询值和目标字段的数量不同”

很显然,我使用的方法不起作用,所以有人知道写查询的正确方法吗?

1 个答案:

答案 0 :(得分:1)

您需要单个SELECT .. FROM ..语句作为源。通常,您会使用JOIN,但是如果表不相关,则使用笛卡尔乘积。

INSERT INTO [tblClasses/Students] (StudentID, ClassID)
SELECT tblStudent.StudentID, tblClasses.ClassID 
FROM tblStudent, tblClasses 
WHERE tblStudent.Username = @StudentUser 
  AND tblClasses.ClassName = @ClassName 

不确定是否会创建重复的记录。如有必要,请使用SELECT DISTINCT

How to use SQL parameters in VB.Net


要在Access中测试查询,请使用[StudentUser][ClassName]作为参数,并在需要时提供值。

由于某些原因,除非明确指定为参数,否则Access会通过[ClassName]跳闸。使用这个:

PARAMETERS StudentUser Text ( 255 ), ClassName Text ( 255 );
INSERT INTO [tblClasses/Students] ( StudentID, ClassID )
SELECT tblStudent.StudentID, tblClasses.ClassID
FROM tblStudent, tblClasses
WHERE tblStudent.Username = [StudentUser] 
  AND tblClasses.ClassName = [ClassName];