MySQL關聯中間表是指,在數據庫中通過使用一個連接表,將兩個表之間的關系連接起來,從而實現多對多關系的數據查詢和操作。下面我們通過一個示例來介紹如何使用MySQL關聯中間表。
CREATE TABLE `teacher` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵id', `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '教師姓名', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='教師表'; CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵id', `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '學生姓名', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='學生表'; CREATE TABLE `teacher_student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵id', `teacher_id` int(11) NOT NULL COMMENT '教師id', `student_id` int(11) NOT NULL COMMENT '學生id', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='教師學生關聯表';
在這個示例中,我們創建了三個表:teacher, student, teacher_student。其中,teacher和student分別代表教師和學生兩個實體,teacher_student則是連接這兩個實體的中間表。
下面我們來看一下如何通過MySQL語句進行關聯查詢,例如查詢某個教師所教授的所有學生:
SELECT s.name FROM student s INNER JOIN teacher_student ts ON ts.student_id = s.id INNER JOIN teacher t ON t.id = ts.teacher_id WHERE t.id = 1;
這個查詢語句使用了INNER JOIN來連接三個表,其中ts.student_id = s.id和t.id = ts.teacher_id表示連接條件,最后的WHERE子句用來過濾出指定教師的學生。
通過MySQL關聯中間表,我們可以實現更加復雜的多對多關系數據查詢和操作,如有需要,也可以通過增加更多的中間表來擴展這個模型。
上一篇Vue iver
下一篇c json語言讀取數據