mysql多对多关联中间表语句
时间: 2023-11-14 08:12:23 浏览: 76
在 MySQL 中,多对多关联通常需要使用一个中间表来存储两个表之间的关系。下面是一个简单的例子,假设我们有两张表:students 和 courses,它们之间存在多对多关系。我们可以使用一个名为 student_course 的中间表来存储它们之间的关系。
```sql
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE courses (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE student_course (
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)
);
```
在上面的代码中,我们分别创建了 students、courses 和 student_course 三张表。其中,students 和 courses 表是两个需要关联的表,student_course 表则是中间表,用于存储它们之间的关系。在 student_course 表中,student_id 和 course_id 分别是两个外键,分别关联到 students 和 courses 表的主键上。
当需要建立 students 和 courses 之间的关系时,只需要向 student_course 表中插入对应的 student_id 和 course_id 即可。
例如,如果想让名为 Alice 的学生参加名为 English 的课程:
```sql
INSERT INTO student_course (student_id, course_id)
SELECT s.id, c.id FROM students s, courses c
WHERE s.name = 'Alice' AND c.name = 'English';
```
这样,就可以在 student_course 表中创建一条记录,表示 Alice 参加了 English 课程。
阅读全文