我有这个模型。
Trip有很多乘客通过TripPassenger
TripPassenger 属于 Trip
TripPassenger 属于用户
用户
如何获取乘客 X 与乘客 Y 的所有行程?
我有这个模型。
Trip有很多乘客通过TripPassenger
TripPassenger 属于 Trip
TripPassenger 属于用户
用户
如何获取乘客 X 与乘客 Y 的所有行程?
一种解决方案是自加入:
select tp1.TripId
from TripPassenger tp1
join TripPassenger tp2
on tp1.UserId = X
and tp2.UserId = Y
and tp1.TripId = tp2.TripId
select trip_id
from trip_passenger
where passenger_id in (1,2)
group by trip_id
having count(*) = 2;
这将返回这两名乘客参加的那些旅行。如果您也有其他乘客参与的那些,您需要使用count(*) >= 2
.
我还假设没有乘客被两次分配到同一次旅行。
SELECT TripID
FROM TripPassenger
WHERE User = @User1
AND TripID IN (
SELECT TripID
FROM TripPassenger
WHERE User = @User2
)