在 MySQL 數(shù)據(jù)庫(kù)中,很多時(shí)候都需要查詢多對(duì)多的數(shù)據(jù),這種情況下需要使用中間表來處理。下面我們來看一下如何處理多對(duì)多查詢。
首先,需要建立兩個(gè)表,例如“學(xué)生表”和“課程表”,這兩個(gè)表需要建立一個(gè)中間表,例如“選課表”:
CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `course` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `select_course` ( `student_id` int(11) NOT NULL, `course_id` int(11) NOT NULL, PRIMARY KEY (`student_id`,`course_id`) );
其中,“選課表”中的“student_id”和“course_id”都是對(duì)應(yīng)“學(xué)生表”和“課程表”的主鍵。
查詢時(shí)需要使用 JOIN 關(guān)鍵字進(jìn)行多表查詢。例如,查詢某個(gè)學(xué)生選擇的所有課程:
SELECT course.name FROM course JOIN select_course ON course.id = select_course.course_id WHERE select_course.student_id = 1;
其中,“1”表示某個(gè)學(xué)生的 ID。
同理,查詢某個(gè)課程的所有學(xué)生:
SELECT student.name FROM student JOIN select_course ON student.id = select_course.student_id WHERE select_course.course_id = 1;
其中,“1”表示某個(gè)課程的 ID。
以上就是處理 MySQL 多對(duì)多查詢的方法。