我遇到了以下问题,我不确定如何解决这个问题。我有一个粗略的想法,但我不确定如何执行它。
这是问题
表格存在格式如下:
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方法可以实现这一目标。但是,我不确定。
答案 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_Id2
和C_id2
;确保正确地为您的表名设置别名。