假设我们有三个表
课程 - 表格
------------------
ID | CourseName
------------------
1 | C++
2 | Java
------------------
老师 - 表
-----------------------
ID | TeacherName
-----------------------
1 | Professor 1
2 | Professor 2
-----------------------
CourseTeacher - 表
----------------------------
ID | CourseID | TeacherID
----------------------------
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
4 | 2 | 2
----------------------------
现在这就像AFAK一样,但如何以这种格式选择,插入,更新,删除记录!
我的意思是,我会使用简单的“INSERT INTO ... VALUES(..,..,..)”或简单的“SELECT * FROM ...”
但是现在要检索相同的单个信息我要使用一些包含3个表的查询(提示:我已经使用了连接,但仍然是如何!!)
为我的案例选择和插入SQL语句会非常有用。
我不使用任何型号和这个复杂的东西,我不知道这样的东西有什么用! 我在我的ADO.NET对象中使用SQL查询,到目前为止一切正常!答案 0 :(得分:2)
我不确定你的问题是什么......
假设您在每个表中的PK都会自动递增。
添加课程:INSERT INTO Course VALUES 'My New Course'
要添加教师:INSERT INTO Teacher VALUES 'My New Teacher'
将现有课程添加到现有教师: 在最糟糕的情况下,意味着您只知道教师和课程的名称
SELECT ID FROM Teacher WHERE NAME = 'My New Teacher' -> id1
SELECT ID FROM Course WHERE NAME = 'My New Course' -> id2
INSERT INTO CourseTeacher(IDCOURSE,IDTEACHER) VALUES (id2,id1)
事实上,在您的应用程序中,当您的用户选择要添加到教师的课程时,您应该已经知道ID是什么,因为当您获得包含它们的列表时,您当然已经这样做了:
SELECT ID, NAME FROM Teacher
SELECT ID, NAME FROM Course.
如果我写的不是: http://www.singingeels.com/Articles/Understanding_SQL_Many_to_Many_Relationships.aspx
答案 1 :(得分:1)
它就像其他表一样简单。
1 - 我假设你必须有插入,更新,选择课程和教师表的代码。所以继续使用相同的方法。
2-但是对于CourseTeacher表(连接表),当您在相应的表中实际存在相应的TearcherId和CourseId时,必须在此表中插入。
因此,当您想在CourseTeacher表中添加新记录时,首先要确保courseid和teacherid的相应值。
当您想要在联结表中更新时,请使用Id列进行更新