我有3张桌子:
关系在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;
不幸的是它不起作用。我也试过一些子查询......不能正常工作。
感谢您的回复。
答案 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;
基本上,您连接表WireEnd1
和WireEnd2
以获取同一线路的数据。然后,您使用Terminals
表的副本连接每个表,以从InternalPN
表中获取Terminals
数据。您不能将这两个表连接到它的单个副本,因为同一行不会等于Terminal1和Terminal2。因此,您没有获得任何输出。