我的数据库中有这些表:
游客- 这是第一张桌子
- Tourist_ID - 主键
- 名字……等等……
额外收费
- Extra_Charge_ID - 主键
- Excursion_ID - 外键
- Extra_Charge_Description
Tourist_Extra_Charges
- Tourist_Extra_charge_ID
- Extra_Charge_ID - 外键
- Tourist_ID - 外键
预订
- Reservation_ID - 主键
- ......
Tourist_Reservations
- Tourist_Reservation_ID
- Reservation_ID - 外键
- Tourist_ID - 外键
所以这里是我的例子:我已经预订了Reservaton_ID = 27
这个预订有两个游客Tourist_ID = 86
和Tourist_ID = 87
这个游客 id 86 有额外费用Extra_Charge_ID = 7
; Extra_charge_ID = 11
问题在于游客属于游览Excursion_ID = 6
;因此,这次游览还需要额外收费Extra_Charge_ID = 8
和Extra_Charge_ID = 9
; (ID 7 和 11 除外)
是否可以进行 SQL 查询以获取Extra_Charge_ID
不属于这些Tourists_ID
但属于它们的这个Excursion_ID
(我的意思是获取 Extra_charge_Id:8 和 9)
(这是我为获取所有游客的 extra_charge_description 所做的查询,Reservation_ID = 27
但我不知道如何更改它。)
string selectTouristExtraCharges =
"Select EXTRA_CHARGES.Extra_Charge_Description,TOURIST_EXTRA_CHARGES.Tourist_ID FROM EXTRA_CHARGES";
selectTouristExtraCharges+=" INNER JOIN TOURIST_EXTRA_CHARGES on EXTRA_CHARGES.Extra_Charge_ID = TOURIST_EXTRA_CHARGES.Extra_Charge_ID";
selectTouristExtraCharges+=" INNER JOIN TOURIST_RESERVATION on TOURIST_EXTRA_CHARGES.Tourist_ID = TOURIST_RESERVATION.Tourist_ID";
selectTouristExtraCharges+=" INNER JOIN RESERVATIONS on RESERVATIONS.Reservation_ID = TOURIST_RESERVATION.Reservation_ID";
selectTouristExtraCharges += " where RESERVATIONS.Reservation_ID=27";