MySQL连接表(Join Table)通常用于实现多对多关系。在一个多对多关系中,两个实体之间存在多个关联,例如学生和课程之间的关系。一个学生可以选修多门课程,而一门课程也可以被多个学生选修。为了表示这种关系,通常会创建一个连接表,该表包含两个实体的主键作为外键。
连接表广泛应用于各种需要表示多对多关系的场景,例如:
假设有两个表:students
和 courses
,它们之间通过连接表 student_courses
表示多对多关系。
-- 创建学生表
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(100)
);
-- 创建课程表
CREATE TABLE courses (
id INT PRIMARY KEY,
name VARCHAR(100)
);
-- 创建连接表
CREATE TABLE student_courses (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (course_id) REFERENCES courses(id)
);
-- 插入示例数据
INSERT INTO students (id, name) VALUES (1, 'Alice'), (2, 'Bob');
INSERT INTO courses (id, name) VALUES (101, 'Math'), (102, 'Science');
INSERT INTO student_courses (student_id, course_id) VALUES (1, 101), (1, 102), (2, 101);
-- 查询学生及其选修的课程
SELECT students.name AS student_name, courses.name AS course_name
FROM students
JOIN student_courses ON students.id = student_courses.student_id
JOIN courses ON student_courses.course_id = courses.id;
希望这些信息对你有所帮助!如果你有其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云