当我更新多对多关系时,所有记录都获得相同的值

When i update many to many relationship all records get the same value

您好,我想使用 jdbc 对我的数据库进行更新。

在我的数据库中,一个学生可以得到不止一节课,而且一节课可以从多个学生那里得到。

当我试图更改一个学生的课程记录时,该记录不止一节课。

它使所有课程的价值相同。

我只想编辑特定的课程。

同时我也在更新他们的名字,不,class和课程

例如:

杰克---英语

杰克---微积分

杰克---Java

我只是想将 Java 更改为历史,但结果是:

杰克---历史

杰克---历史

杰克---历史

我有 3 张桌子。

-课程-

盖子(PK),编号,代码,Lesson_name

-学生-

Sid(PK)、Cid(FK)、姓名、编号

-Student_lesson-

Sid(FK), Lid(FK)

我的代码

result = st.executeQuery("select lid from lesson where lesson_name='"+lesson_name+"'");
    if(result.next()){
    int lidnum = result.getInt(1);
    st.executeUpdate("update student_lesson set lid = '"+lidnum+"' where sid = (select sid from student where no = '"+no+"')");
    }

I just want to change Java to History

为此,您应该获得 Java 和历史记录的 lid

然后修改最后一个查询如下:

update student_lesson set lid = lid_history where sid = (select sid from student where no = no) and lid = lid_java

您还需要提供课程 ID:

st.executeUpdate("update student_lesson set lid = '"+lidnum+"' 
where sid = (select sid from student where no = '"+no+"')
and lid = whatever_the_lid_of_Java_is");