下面為你呈現一個 MySQL 按條件三表并聯查詢的示例。假定有三個表:students
、courses
?和?enrollments
,它們的結構和關聯如下:
students
?表:包含學生的基本信息,有?student_id
?和?student_name
?等字段。courses
?表:包含課程的相關信息,有?course_id
?和?course_name
?等字段。enrollments
?表:作為關聯表,記錄學生選課的情況,有?enrollment_id
、student_id
?和?course_id
?等字段。
下面這個 SQL 語句會查詢出所有選修了特定課程(例如?Math
)的學生姓名:
three-table-queryMySQL 三表并聯查詢示例
SELECT students.student_name
FROM students
JOIN enrollments ON students.student_id = enrollments.student_id
JOIN courses ON enrollments.course_id = courses.course_id
WHERE courses.course_name = 'Math'; ?
代碼解釋:
SELECT
?子句:從?students
?表中選取?student_name
?字段。FROM
?子句:指定要查詢的主表為?students
。JOIN
?子句:- 第一個?
JOIN
?把?students
?表和?enrollments
?表連接起來,連接條件是?students.student_id = enrollments.student_id
。 - 第二個?
JOIN
?把?enrollments
?表和?courses
?表連接起來,連接條件是?enrollments.course_id = courses.course_id
。
- 第一個?
WHERE
?子句:篩選出?courses
?表中?course_name
?為?Math
?的記錄。