一、什么是多對多查詢?
在數據庫中,多對多查詢是指兩個表之間存在多個關聯關系,即一個表中的一條記錄可以與另一個表中的多條記錄相關聯,反之亦然。在多對多查詢中,需要使用中間表來實現關聯。
例如,一個學生可以選修多門課程,而一門課程也可以被多個學生選修。這種關系就是多對多關系。
二、創建多對多關系的表
為了創建多對多查詢,需要在數據庫中創建三個表:學生表、課程表和中間表。
t` (t(11) NOT NULL AUTO_INCREMENT,ame` varchar(50) NOT NULL,t(11) NOT NULL,
PRIMARY KEY (`id`)noDBb4;
CREATE TABLE `course` (t(11) NOT NULL AUTO_INCREMENT,ame` varchar(50) NOT NULL,
`teacher` varchar(50) NOT NULL,
PRIMARY KEY (`id`)noDBb4;
t_course` (t(11) NOT NULL AUTO_INCREMENT,tt(11) NOT NULL,t(11) NOT NULL,
PRIMARY KEY (`id`),tt_id`),
KEY `course_id` (`course_id`),ttt` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,t_course_ibfk_2` FOREIGN KEY (`course_id`) REFERENCES `course` (`id`) ON DELETE CASCADE ON UPDATE CASCADEnoDBb4;
三、插入數據
向學生表中插入數據:
tame`, `age`) VALUES
('張三', 18),
('李四', 19),
('王五', 20);
向課程表中插入數據:
ame`, `teacher`) VALUES
('數學', '張老師'),
('英語', '李老師'),
('計算機', '王老師');
向中間表中插入數據:
tt_id`, `course_id`) VALUES
(1, 1),
(1, 2),
(2, 2),
(3, 1),
(3, 3);
四、多對多查詢
查詢學生選修的課程:
ameame` AS `課程名稱`, c.`teacher` AS `授課老師`t` stt_id`
LEFT JOIN `course` c ON sc.`course_id` = c.`id`;
查詢選修某門課程的學生:
ameame` AS `學生姓名`
FROM `course` ct_course` sc ON c.`id` = sc.`course_id`tt_id` = s.`id`ame` = '數學';
以上就是 MySQL 多對多查詢的基本操作。通過這些簡單的練習,相信大家已經掌握了多對多查詢的基本方法。