我的数据库中有这些表:
游客- 这是第一张桌子
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 的 Tourist。这位 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
)
但我找不到这个游客的名字