2013-10-28 45 views
0

所以我使用一个访问(可悲)来驱动一个VB程序注册学生上课。我有三张表格,学生和课程。查询插入基于其他表的数据类型

enter image description here

我想添加的学生证和课程ID在登记表中的关系。 这是因为我做了SQL所以我可怕的第一次失败了很久:

INSERT students.id INTO register.studentid WHERE 1 = students.id 
INSERT courses.id INTO register.courseid WHERE '12345' = courses.crn 

使用INSERT INTO的是错误的。但是,你可以这样做:

INSERT INTO register (studentid, courseid) VALUES (1 = students.id, '12345' = courses.crn); 

,因为我现在的VB代码的工作原理是这样的:

If Not TextBox1.Equals("") Then 

     query += "INSERT students.id INTO register.studentid WHERE '" & StudentID & "' = students.id " 
     query += "INSERT courses.id INTO register.courseid WHERE '" & TextBox1.Text & "' = courses.crn" 
    End If 

回答

0

INSERT的说法应该是按以下格式

INSERT INTO table_name (column1,column2,column3,...) 
VALUES (value1,value2,value3,...) 

那么,是什么你正在寻找是这样的:

INSERT INTO register (studentid, courseid) VALUES (1, '12345') 

If Not TextBox1.Equals("") Then 
    query += "INSERT INTO register (studentid, courseid) VALUES (" & StudentID & ", '" & TextBox1.Text & "')" 
End If 

下面是一个例子SQL Fiddle你可以玩。

+0

好的,那我该如何查询,找到相应的course.id,其中的course.crn是12345 – user1093111

+0

'SELECT ID FROM courses WHERE crn ='12345'' – Linger

+0

你可以嵌套吗? INSERT INTO注册(studentid,courseid)VALUES(SELECT ID FROM courses WHERE crn ='12345',SELECT course.id FROM courses WHERE crn ='12345' – user1093111