У меня есть эти таблицы в моей базе данных:SQL вопрос подзапрос с внутренним соединением
Tourist - это первая таблица
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
Так вот пример
Я один турист с Tourist_ID - 86. Этот турист с номером 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
)
, но я не могу найти способ, чтобы получить имя этого туриста
вы можете показать выход вашего запроса, чтобы дать как больше понимания – zxc