色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql怎么做多對多

錢艷冰1年前11瀏覽0評論

在MySQL中,實現多對多關系通常需要使用中間表。中間表是一個實體表,用于存儲多對多關系的關聯數據。

假設我們有兩個表:學生和課程。一個學生可以選擇多門課程,一門課程也可以被多個學生選擇。

CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE course (
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 student(id),
FOREIGN KEY(course_id) REFERENCES course(id)
);

在中間表中,我們定義了兩個外鍵關聯學生表和課程表,保證了關聯數據的完整性。主鍵是由學生ID和課程ID組成的復合主鍵,確保了每個學生只能選擇一次每門課程。

現在我們可以向學生和課程表中插入數據,然后向中間表中插入關聯數據:

INSERT INTO student(id,name) VALUES(1,'張三');
INSERT INTO student(id,name) VALUES(2,'李四');
INSERT INTO student(id,name) VALUES(3,'王五');
INSERT INTO course(id,name) VALUES(1,'語文');
INSERT INTO course(id,name) VALUES(2,'數學');
INSERT INTO course(id,name) VALUES(3,'英語');
INSERT INTO student_course(student_id,course_id) VALUES(1,1);
INSERT INTO student_course(student_id,course_id) VALUES(1,2);
INSERT INTO student_course(student_id,course_id) VALUES(2,2);
INSERT INTO student_course(student_id,course_id) VALUES(3,1);
INSERT INTO student_course(student_id,course_id) VALUES(3,3);

現在我們可以通過JOIN操作查詢學生選課信息:

SELECT student.name,course.name FROM student
JOIN student_course ON student.id = student_course.student_id
JOIN course ON course.id = student_course.course_id;

上述查詢語句將返回以下結果:

+------+--------+
| name | name   |
+------+--------+
| 張三  | 語文   |
| 張三  | 數學   |
| 李四  | 數學   |
| 王五  | 語文   |
| 王五  | 英語   |
+------+--------+

我們看到,通過中間表連接學生和課程表,我們可以輕松實現多對多關系。