如何在SQL中连接三个表?

时间:2016-06-01 16:54:02

标签: sql vba ms-access

我遇到了以下问题,我不确定如何解决这个问题。我有一个粗略的想法,但我不确定如何执行它。

这是问题

表格存在格式如下:

Name    | Name_Att| Name2 | Name_Att2 
--------+---------+-------+-------
ryan    |  red    | xyz   |  green

同样表B 以这种格式存在:

Name    | Name_id |  
--------+---------+
ryan    | 123     |
xyz     | 129     |

同样表C 以这种格式存在:

Name_Att| C_id    | Name_id  
--------+---------+---------
red     | 4591    | 123
green   | 4592    | 123
blue    | 4593    | 123
green   | 4594    | 129
blue    | 4595    | 129

所以我试图创建下表:

Name_id |  C_id   |Name_id2 | C_id2  
--------+---------+---------+----------
123     | 4591    | 129     | 4594

我有什么方法可以解决这个问题吗?我正在考虑编写代码来执行此操作。我确信有SQL方法可以实现这一目标。但是,我不确定。

1 个答案:

答案 0 :(得分:2)

尝试在解决方案中包含以下联接:

FROM (TableA INNER JOIN TableB ON TableA.Name = TableB.Name) 
INNER JOIN TableC ON (TableA.Name_Att = TableC.Name_Att) AND
    (TableB.Name_id = TableC.Name_id) 

你可以做同样的事情来获得Name_Id2C_id2;确保正确地为您的表名设置别名。