Здесь мы хотим рассмотреть вполне прозрачное решение, содержащее две незначительные ошибки. Вот оно (см. комментарии):
Консоль
SELECT q.battle
FROM (
--Определяем корабли из Ships участвовавшие в битвах
SELECT Outcomes.battle, Outcomes.ship, Classes.country
FROM Classes INNER JOIN
Ships ON Classes.class = Ships.class INNER JOIN
Outcomes ON Ships.name = Outcomes.ship
UNION
--Определяем головные корабли из Outcomes
SELECT Outcomes.battle, Outcomes.ship, Classes.country
FROM Outcomes INNER JOIN
Classes ON Outcomes.ship = Classes.class
) AS q
GROUP BY q.battle
HAVING COUNT(q.country) >= 3;
Надеемся, что вы без труда их найдете и исправите.
Вернуться к обсуждению упражнения 70
Решить задачу на SQL-EX.RU