gpt4 book ai didi

java - 创建 inner_join 表或创建新表 MySQL

转载 作者:行者123 更新时间:2023-11-29 06:16:16 25 4
gpt4 key购买 nike

我的 ClassSelector 数据库中有两个表:

学生

学生编号 |学生姓名 |家乡

类(class)编号 |类名 |描述

我正在尝试编写一个程序,该程序将采用用户输入的 student_id 并允许他们从类(class) ID 列表中选择一个类(class)。我希望应用程序将 student_id、student_name、class_id、classname 写入单独的表。为此,最好创建一个新表 (student_x_class) 并使用 INSERT 语句:

INSERT INTO ClassSelector.student_x_class ClassSelector.students.student_id,ClassSelector.students.student_name, ClassSelector.classes.class_id,ClassSelector.classes.classname VALUES(W, X, Y, Z);

或者在 classes 表 (student_x_class) 中创建一个新列并将其用作 student_id 列的外键并使用内连接。

抱歉,如果这让您感到困惑,我是 MySQL 的新手。任何帮助将不胜感激!

ResultSet rs3 = myStmt3.executeQuery("SELECT * FROM ClassSelector.classes WHERE class_id = " + selectedClass);
while(rs3.next()){
String innerJoin = (userEnterId + " has been added to " + rs3.getString("classname") + " " + rs3.getString("class_id"));
System.out.println(innerJoin);
String student_classJoin = "INSERT INTO students_x_classes" + "(student_name, class_id, classname)" + "VALUES (?, ?, ?)";
PreparedStatement pStmt = con.prepareStatement(student_classJoin);
pStmt.setString(1, userEnterId);
pStmt.setString(2, rs2.getString("class_id"));
pStmt.setString(3, rs2.getString("classname"));
pStmt.executeUpdate();
input.close();
}

最佳答案

由于 student-classes 是一个 M:N 关系(意味着 1 个学生可以参加很多类(class),1 个类(class)可以有很多学生)我建议你创建表 student_x_class包含列 (class_id, student_id)

然后您可以通过简单的连接选择为特定学生选择所有类(class)

SELECT *
FROM students s
INNER JOIN student_x_class sc ON sc.student_id = s.student_id
INNER JOIN classes c ON c.class_id = sc.class_id
WHERE s.student_id = ?

当您想要INSERT 行到student_x_class 表时,您不需要连接任何东西。只需插入 class_id 和 student_id 对(该表中不需要 classname),例如

String student_classJoin = "INSERT INTO student_x_class" + "(student_id, class_id)" + "VALUES (?, ?)";

并且不要忘记调整绑定(bind),即删除行 pStmt.setString(3, rs2.getString("classname"));

顺便说一句,这是非常基础的东西,请尝试阅读一些 SQL 书籍/教程以了解整个概念。

关于java - 创建 inner_join 表或创建新表 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35724558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com