Witam,
Właśnie zacząłem naukę SQL i po przerobieniu teorii zabrałem się za ćwiczenia ze stronki
Generalnie problem polega na tym, że w jednym z pierwszych ćwiczeń wpisałem prosty SELECT, który zwraca poprawną tabelę, ale jednak wyskakuje mi błąd (że niby wyniki z drugiej tabeli są niepoprawne);
Treść ćwiczenia nr 6:
-> opis istniejących baz:
" The database scheme consists of four tables:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)"
-> Treść zadania: "For each maker producing laptops with a hard drive capacity of 10 Gb or higher, find the speed of such laptops. Result set: maker, speed. "
-> Moje zapytanie:
SELECT Product.maker, Laptop.speed FROM Product INNER JOIN Laptop ON Product.model = Laptop.model WHERE hd >= 10 ORDER BY speed ASC;
(końcówkę "ORDER BY speed ASC" dodałem na końcu, żeby uporządkował zwracaną tabelę jak tą właściwą, ale pomimo tego nadal wyrzuca mi błąd)
-> Zarówno wynik mojego zapytania, jak i poprawny są takie same:
maker speed
A 450
A 600
A 750
B 750
Jednak cały czas wywala mi błąd:
"Incorrect.
Your query returned the correct dataset on the first (available) database, but it returned incorrect dataset on the second checking database.
- Wrong number of records (more by 2)"
Do ćwiczenia jest dołączony FAQ, według którego zadanie należałoby rozwiązać czymś w stylu:
SELECT DISTINCT Product.maker, Laptop.speed
FROM Product, Laptop
WHERE Laptop.hd >= 10 AND
type IN(SELECT type
FROM Product
WHERE type = 'laptop'
)
http://www.sql-tutorial.ru/book_exercise_6.html
Jak dla mnie nie da się rozwiązać tego zadania bez funkcji 'JOIN'.
Czy ktoś przechodził tą stronkę i wie o co może chodzić?
Czy może stronka jest zbugowana i nie przyjmuje poprawnej odpowiedzi??