MySQL关联表(也称为连接表或中间表)主要用于处理多对多关系。当两个表之间存在多对多关系时,通常需要创建一个关联表来存储它们之间的关联信息。
关联表通常包含两个主要字段,分别作为外键指向另外两个表的主键。例如,假设有两个表:students
和 courses
,它们之间存在多对多关系,即一个学生可以选修多门课程,一门课程也可以被多个学生选修。此时,可以创建一个关联表 student_courses
,包含 student_id
和 course_id
字段。
假设有两个表 students
和 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)
);
查询某个学生选修的所有课程:
SELECT c.name AS course_name
FROM courses c
JOIN student_courses sc ON c.id = sc.course_id
WHERE sc.student_id = 1;
通过合理使用关联表,可以有效地处理复杂的多对多关系,提高数据模型的灵活性和查询效率。
没有搜到相关的沙龙