SQL 三个表的内部联接
SQL inner joins on three tables
我有三个表格需要检查,以便找出教授在哪些课程上活跃。
- table_teacher
- table_course;
- table_teacher_holds_course
table_teacher 看起来像这样:
username | title
---------+----------
john | professor
mark | assistant
table_course 看起来像这样:
course_code | course_name | semester | school_year
-------------+-------------+----------+------------
course_code1| course1 |semester1 | 2015
course_code2| course2 |semester2 | 2015
course_code3| course3 |semester3 | 2015
table_teacher_holds_course 看起来像这样:
username | course_code
---------+-------------
john |course_code1
mark |course_code2
并且当他登录页面时我有教授用户名时,我想对这三个表进行左内连接以显示 table_course
中的教授课程
谁能帮我解决这个问题,因为我是第一次使用 sql 在多个表中加入搜索。
加入表的公共字段
SELECT *
FROM table_teacher t
INNER JOIN table_teacher_holds_course hc ON t.username = hc.username
INNER JOIN table_course c ON hc.course_code = c.course_code
相关示例:
SELECT t.title, t.username, c.course_code, c.course_name, c.semester, c.school_year
FROM table_teacher t
INNER JOIN table_teacher_holds_course hc ON t.username = hc.username
INNER JOIN table_course c ON hc.course_code = c.course_code
WHERE t.username = 'John'
结果:
title username course_code course_name semester school_year
professor John course_code1 course1 semester1 2015
我有三个表格需要检查,以便找出教授在哪些课程上活跃。
- table_teacher
- table_course;
- table_teacher_holds_course
table_teacher 看起来像这样:
username | title
---------+----------
john | professor
mark | assistant
table_course 看起来像这样:
course_code | course_name | semester | school_year
-------------+-------------+----------+------------
course_code1| course1 |semester1 | 2015
course_code2| course2 |semester2 | 2015
course_code3| course3 |semester3 | 2015
table_teacher_holds_course 看起来像这样:
username | course_code
---------+-------------
john |course_code1
mark |course_code2
并且当他登录页面时我有教授用户名时,我想对这三个表进行左内连接以显示 table_course
中的教授课程谁能帮我解决这个问题,因为我是第一次使用 sql 在多个表中加入搜索。
加入表的公共字段
SELECT *
FROM table_teacher t
INNER JOIN table_teacher_holds_course hc ON t.username = hc.username
INNER JOIN table_course c ON hc.course_code = c.course_code
相关示例:
SELECT t.title, t.username, c.course_code, c.course_name, c.semester, c.school_year
FROM table_teacher t
INNER JOIN table_teacher_holds_course hc ON t.username = hc.username
INNER JOIN table_course c ON hc.course_code = c.course_code
WHERE t.username = 'John'
结果:
title username course_code course_name semester school_year
professor John course_code1 course1 semester1 2015