Temat: Chcesz się sprawdzić z SQL-a?
Rozwiązanie zadania 49:
Select s.name as name from ships s join classes c on (c.class=s.class)
where c.bore=16.0
union
select o.ship as name from outcomes o join classes c on (c.class=o.ship) where c.bore=16.0
tego na schemacie bazy nie widać, ale trzeba powiązać outcomes z classes (nazwa statku jest nazwą klasy). Jak na to wpadłem?
1. objaśnienie przy schemacie:
Ships in classes are arranged to a single project. A class is normally assigned the name of the first ship in the class under consideration (head ship); otherwise, the class name does not coincide with any ship name in the database.
(...)
Note: the Outcomes relation may include the ships not included in the Ships relation.
2. objaśnienie do zadania: nieszczęsne "taking into account Outcomes table" (weż pod uwagę tabelę Outcomes)
Obawiam się, że spotkamy się jeszcze w tym quizie z takimi niespodziankami autorzy sami przyznają, że baza ships jest "poorly designed" (
http://sql-ex.ru/faq.php#f3).