3张桌子加入

时间:2019-01-10 12:09:25

标签: sql phpmyadmin

我被困在我3张桌子的联络员中。 我有一张表格,其中有3个字段(id_candidate,name_candidate,firstname_candidate)的候选人

另一个表将课程命名为5个字段(id_lesson,price_lesson,date_lesson,fk_candidate,fk_monitor)

我有一个表,其中包含3个字段(id_monitor,name_monitor,firstname_monitor)的监视器

我可以加入2张桌子(候选人和课程) 这是请求

SELECT *
FROM lessons INNER JOIN
     candidates
     ON lessons.fk_candidate=candidates.id_candidate
ORDER BY id_candidate ASC

但是我的问题是。我不明白如何加入3张桌子? 实际上,监视器的名称必须出现在表课程中。

我尝试过

SELECT *
FROM candidates id_candidate INNER JOIN
     lessons id_lesson
     ON lessons.fk_candidate = candidates.id_candidate INNER JOIN 
     monitors id_monitor 
     ON lessons.fk_monitor = monitors.id_monitor;

1 个答案:

答案 0 :(得分:1)

大概是这样的:

SELECT c.*, l.*, m.name_monitor  -- list out the columns you want explicitly
FROM candidates c INNER JOIN
     lessons l
     ON l.fk_candidate = c.id_candidate INNER JOIN 
     monitors m 
     ON l.fk_monitor = m.id_monitor;

注意:

  • 使用表别名是一个好主意。我建议使用表名的缩写。
  • 定义表别名后,使用它们。您的on子句仍引用表名。
  • 明确列出所需的列。