从同一个字段的2个表中获取类似数据

时间:2014-08-13 19:46:49

标签: sql ms-access

我有3张桌子:

  • WireEnd1(WireNo,Terminal1)
  • WireEnd2(WireNo,Terminal2)
  • 终端(终端,InternalPN)

关系在Terminal = Terminal1和Terminal = Terminal2之间。

我试图创建一个返回完整信息的查询:

SELECT 
    W1.WireNo, W1.Terminal1, T.InternalPN as InternalPN1, 
    W2.Terminal2, T.InternalPN as InternalPN2
from  
    WireEnd1 as W1 
inner join 
    Terminals as T on W1.Terminal1 = T.Terminal
inner join 
    WireEnd2 as W2 on W2.Terminal2 = T.Terminal;

不幸的是它不起作用。我也试过一些子查询......不能正常工作。

感谢您的回复。

1 个答案:

答案 0 :(得分:2)

试试这个:

SELECT 
    W1.WireNo, W1.Terminal1, T1.InternalPN as InternalPN1, 
    W2.Terminal2, T2.InternalPN as InternalPN2
from  
    WireEnd1 as W1 
inner join 
    WireEnd2 as W2 on W2.WireNo = W1.WireNo
inner join 
    Terminals as T1 on W1.Terminal1 = T1.Terminal
inner join
    Terminals as T2 on W2.Terminal2 = T2.Terminal;

基本上,您连接表WireEnd1WireEnd2以获取同一线路的数据。然后,您使用Terminals表的副本连接每个表,以从InternalPN表中获取Terminals数据。您不能将这两个表连接到它的单个副本,因为同一行不会等于Terminal1和Terminal2。因此,您没有获得任何输出。