SQL 三个表的内部联接

SQL inner joins on three tables

我有三个表格需要检查,以便找出教授在哪些课程上活跃。

  1. table_teacher
  2. table_course;
  3. 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