データベースに次のテーブルがあります。
ツーリスト- これが最初のテーブルです
- Tourist_ID - 主キー
- 名前…など…
追加料金
- Extra_Charge_ID - 主キー
- Excursion_ID - 外部キー
- Extra_Charge_Description
Tourist_Extra_Charges
- Tourist_Extra_charge_ID
- Extra_Charge_ID - 外部キー
- Tourist_ID - 外部キー
予約
- Reservation_ID - 主キー
- .....
ツーリスト_予約
- ツーリスト_予約_ID
- Reservation_ID - 外部キー
- Tourist_ID - 外部キー
これが私の例です: 私は で予約していますReservaton_ID = 27
この予約にはTourist_ID = 86
とのツーリストが 2 人いますTourist_ID = 87
この id 86 のツーリストには と の追加料金がExtra_Charge_ID = 7
あり Extra_charge_ID = 11
ます ;
ここでの問題は、ツーリストが Excursion に属していることExcursion_ID = 6
です。したがって、このエクスカーションには と の追加料金もExtra_Charge_ID = 8
ありExtra_Charge_ID = 9
ます。(ID7、11の方は除く)
Extra_Charge_ID
これらに属していないが、それらに属しているTourists_ID
これを取得するための SQL クエリを作成することは可能ですか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";