我有一个包含三列的表:StartingId,EndingId和TripCount。起始和结束ID分别是行程开始和结束的位置的PK。 TripCount包含一个整数,表示人们在起始位置和结束位置之间旅行的次数。
有时候,一次旅行的结束ID成为另一次旅行的起始ID。当反转起始和结束ID时,计数可能也会有所不同。
以下是一些示例数据:
StartingId EndingId TripCount
100 200 1023
101 300 5214
200 100 600
650 200 100
如何仅返回另一行和TripCount的反向行。我想要的结果:
StartingId EndingId TripCount
100 200 1023
200 100 600
答案 0 :(得分:6)
您使用不同的别名加入表本身。您希望一个表的StartingId等于同一个表的EndingId,反之亦然。
int foo(int a, int b) {
return a + b;
}
答案 1 :(得分:0)
您可以使用exists子句:
select startingID
, endingID
, tripCount
from myTable t
where exists (select 1
from myTable t2
where t2.startingID = t.endingID
and t2.endingID = t.startingID)