使用链接表中的引用从表中选择(在Join中加入?)

时间:2016-06-29 06:52:29

标签: mysql join

所以我改变了我的数据库中的外键,这在很大程度上是顺利进行的。但是,我发现有一个查询无法使用新的FK参考。

我已经构建了一个快速Fiddle来显示表格结构的骨架。

基本上我正在尝试解决的问题是cable用于引用major表,但现在引用sub表(如小提琴中所构建的)。但是,此查询也引用了area表,并且由于cable表没有引用major表,我不确定如何保留该引用了。

有问题的查询如下所示:

SELECT
  C.name,
  M.name AS Origin,
  M.area AS OriginArea
FROM cable C
  INNER JOIN major M ON C.major = M.major_id
WHERE
  # Parameters
;

但是现在,因为cable表引用了sub表,我不知道如何引用major表来选择area

也许是这样的?

SELECT
  C.name,
  S.name AS Origin,
  M.area AS OriginArea
FROM cable C
  INNER JOIN sub S ON C.sub = S.sub_id
  INNER JOIN major M ON S.major = M.major_id
WHERE
  # Parameters
;

1 个答案:

答案 0 :(得分:2)

应该有效

SELECT   C.name,   S.name AS Origin,   M.area AS OriginArea FROM cable C   INNER JOIN sub S ON C.sub = S.sub_id   INNER JOIN major M ON S.major = M.major_id;
+---------+--------+------------+
| name    | Origin | OriginArea |
+---------+--------+------------+
| cable 1 | sub 1  |          1 |
+---------+--------+------------+
1 row in set (0.07 sec)