通过公共表连接表

时间:2014-05-30 18:51:48

标签: sql sql-server join

如果我有

表A,B,C

A和B有关系 B和C有不同的关系

我看不到A和C之间的相关栏目 但是我希望将A和C中的列组合起来......

有办法吗?这在逻辑上是否有意义?

2 个答案:

答案 0 :(得分:2)

是的,它在逻辑上是有意义的。

因为A涉及B和B涉及C - >然后A与C相关,即Transitive Relationship

你可以通过B加入A和C之间,即加入A加B,然后加入B加C

select A.*
from A
inner join B on A.somecolumn = B.somecolumn
inner join C on C.somecolumn = B.somecolumn

其中somecolumn是联接表之间的公共列或相关列

答案 1 :(得分:1)

说,表A& B有共同的AB栏和表B& C有一个公共列BC,然后你可以使用类似下面的查询(表B将有AB列和BC列,而A只有AB而C只有BC):

select A.*, C.*
from A
  join B ON A.AB = B.AB
  join C ON B.BC = C.BC