0

我有这个模型。

Trip有很多乘客通过TripPassenger

TripPassenger 属于 Trip

TripPassenger 属于用户

用户

如何获取乘客 X 与乘客 Y 的所有行程?

4

3 回答 3

2

一种解决方案是自加入:

select  tp1.TripId
from    TripPassenger tp1
join    TripPassenger tp2
on      tp1.UserId = X
        and tp2.UserId = Y
        and tp1.TripId = tp2.TripId
于 2012-08-04T14:20:38.683 回答
1
select trip_id
from trip_passenger
where passenger_id in (1,2)
group by trip_id
having count(*) = 2;

这将返回这两名乘客参加的那些旅行。如果您也有其他乘客参与的那些,您需要使用count(*) >= 2.

我还假设没有乘客被两次分配到同一次旅行。

于 2012-08-04T14:40:42.323 回答
0
SELECT TripID
FROM TripPassenger
WHERE User = @User1
  AND TripID IN (
    SELECT TripID
    FROM TripPassenger
    WHERE User = @User2
  )
于 2012-08-06T17:21:30.263 回答