java中的Sql Junction表

时间:2015-11-02 00:05:50

标签: java sql junction

我想要使用多对多的关系。如何在学生中学习科目和学科科目。

学生表

student_IDno | full name | address |

和主题表

subject_IDno| title | description | time |

我想将学生ID号分配给 主题表,以便主题表可以有学生

我可以在主题表中做同样的事情吗?将主题ID号分配给学生表,以便它也可以有一个主题?

如果我搜索主题代码,学生将出现, 与学生相反,如果我搜索学生代码科目也会出现。

最好的方法是什么?我希望我能帮助解释我的问题。

1 个答案:

答案 0 :(得分:1)

您引入了一个THIRD表来建立表STUDENT和SUBJECT之间的关系。让我们调用表 CLASS 。它将包含以下列:

classID | student_IDno | subject_IDno

让我们说一名学生就读于该校。将使用唯一的student_IDno将条目插入到STUDENT。 (让我们说1)

主题列表当然位于SUBJECT表中。

现在,如果学生想要注册某个科目,他必须加入CLASS。现在你将他插入一个student_IDno = 1和subject_IDno =他注册的任何科目的班级。

您的CLASS表格如下:

classID | student_IDno | subject_IDno
   1    |      1       |     1
   2    |      1       |     2
   3    |      1       |     3

你能看到它如何显示学生1的CLASS数量吗?

你如何搜索?假设你想找到正在服用SUBJECT 1的学生。

SELECT student.* FROM CLASS as class
JOIN SUBJECT as subject ON class.subject_IDno = subject.subject_IDno
JOIN STUDENT as student ON class.student_IDno = student.student_IDno 
WHERE subject.subject_IDno = 1

我把剩下的留给你。我想你明白了。

more on SQL join here