我有一个包含三列的表:StartingId,EndingId和TripCount.起始和结束ID分别是行程开始和结束的位置的PK.TripCount包含一个整数,表示人们在起始位置和结束位置之间旅行的次数.
有时候一次旅行的结束id成为另一次旅行的起始ID.在反转起始和结束ID时,计数可能也会有所不同.
这是一些示例数据:
StartingId EndingId TripCount
100 200 1023
101 300 5214
200 100 600
650 200 100
Run Code Online (Sandbox Code Playgroud)
如何仅返回另一行和TripCount的反向行.我想要的结果:
StartingId EndingId TripCount
100 200 1023
200 100 600
Run Code Online (Sandbox Code Playgroud)
您使用不同的别名加入表本身.您希望一个表的StartingId等于同一个表的EndingId,反之亦然.
Select
t.StartingId,
t.EndingId,
t.TripCount
FROM
MyTable t
INNER JOIN
MyTable t2
ON
t2.StartingId = t.EndingId AND t2.EndingId = t.StartingId
Run Code Online (Sandbox Code Playgroud)