I've got these tables in my database:
Tourist - this is the first table
Tourist_ID - primary key
name...etc...
EXTRA_CHARGES
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
So here is the example
I've one Tourist with Tourist_ID - 86 . This tourist with id 86 has extra charges with Extra_Charge_ID - 7 and and Extra_charge_ID - 11;
I try to make a query so I can take the name of the Tourist and all the charges in EXTRA_CHARGES table that doesn't belong to this tourist.
Here is the query that I try - but it doesn't return nothing.
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
)
I of course can get only the charges with this query
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
)
but I can't find a way to get the name of this tourist