データベースに次のテーブルがあります。
ツーリスト- これが最初のテーブルです
Tourist_ID - primary key
name...etc...
追加料金
Extra_Charge_ID - primary key
Extra_Charge_Description
Amount
Tourist_Extra_Charges
Tourist_Extra_Charge_ID
Extra_Charge_ID - foreign key
Tourist_ID - foreign key
だからここに例があります
Tourist_ID-86 の観光客が 1 人います。ID 86 のこの旅行者には、Extra_Charge_ID - 7 と Extra_charge_ID - 11 の追加料金がかかります。
観光客の名前と、この観光客に属さないEXTRA_CHARGES テーブルのすべての料金を取得できるように、クエリを作成しようとしました 。
これが私が試したクエリですが、何も返されません。
SELECT
Tourist.Name
, EXTRA_CHARGES.Extra_Charge_Description
, EXTRA_CHARGES.Amount
FROM
Tourist
INNER JOIN TOURIST_EXTRA_CHARGES
ON Tourist.Tourist_ID = TOURIST_EXTRA_CHARGES.Tourist_ID
INNER JOIN EXTRA_CHARGES
ON TOURIST_EXTRA_CHARGES.Extra_Charge_ID = EXTRA_CHARGES.Extra_Charge_ID
WHERE
Tourist.Tourist_ID= 86
and EXTRA_CHARGES.Extra_Charge_ID NOT IN
( SELECT Extra_Charge_ID
FROM TOURIST_EXTRA_CHARGES te
WHERE te.Tourist_ID = 86
)
もちろん、このクエリでは料金のみを取得できます
SELECT * FROM EXTRA_CHARGES e
WHERE e.Extra_Charge_ID NOT IN
(SELECT Extra_Charge_ID from TOURIST_EXTRA_CHARGES te
WHERE te.Tourist_ID = 86
)
しかし、この観光客の名前を取得する方法が見つかりません