MySQL中的关联表(也称为连接表或中间表)通常用于实现多对多关系。例如,如果有一个学生表和一个课程表,一个学生可以选修多门课程,一门课程也可以被多个学生选修,这种关系就需要通过一个关联表来实现。
假设有一个学生表 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');
INSERT INTO students (id, name) VALUES (2, 'Bob');
INSERT INTO courses (id, name) VALUES (101, 'Math');
INSERT INTO courses (id, name) VALUES (102, 'Science');
INSERT INTO student_courses (student_id, course_id) VALUES (1, 101);
INSERT INTO student_courses (student_id, course_id) VALUES (1, 102);
INSERT INTO student_courses (student_id, course_id) VALUES (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;
通过以上内容,您应该对MySQL中的关联表有了全面的了解,并能够解决常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云