Konstantin Titarenko
Ученик
(120)
3 года назад
Коряво сформулированное условие задачи ввело Николая в заблуждение. Он написал запрос, подразумевая "товары, которые не приобретались", правильно же будет читать "группы товаров целиком, которые не приобретались". Чтобы получить "equipment", подойдет, например такой запрос:
SELECT good_type_name
FROM GoodTypes
WHERE good_type_id NOT IN (
SELECT good_type_id
FROM Goods
JOIN Payments ON good_id = good AND YEAR(date) = 2005
JOIN GoodTypes ON good_type_id = type
)
Konstantin TitarenkoУченик (120)
3 года назад
Более того, поскольку система не анализирует SQL, она посчитает правильным и такой запрос
SELECT 'equipment' as good_type_name FROM DUAL
:)
SELECT DISTINCT good_type_name FROM GoodTypes
JOIN Goods
ON GoodTypes.good_type_id = Goods.type
LEFT JOIN Payments ON
Goods.good_id = Payments.good
AND YEAR(Payments.date) = 2005
WHERE Payments.good IS NULL
;