Скажем есть две таблицы
Product(maker, model)
Printer(code, model, price)
Таблица Product представляет производителя (maker), номер модели (model).
В таблице Printer для каждого ПК, однозначно определяемого уникальным кодом – code, указаны модель – model (внешний ключ к таблице Product) и price — цена. Задание: Найдите производителей принтеров. Вывести: maker
Ну т.е. в таблице Product есть именя фирм Samsung, hp, canon. А в таблице Printer даны ключи для таблицы Product. Нужно вывести название производителей принтеров, которые есть в таблице Printer
Почему нельзя писать так
Select DISTINCT maker
From Product, Printer
Where Printer.model=Product.model
Здравствуйте, Zender, Вы писали:
Z>Изучаю SQL. Возник вопрос, на задание
Z>Скажем есть две таблицы Z>Product(maker, model) Z>Printer(code, model, price)
Z>Таблица Product представляет производителя (maker), номер модели (model). Z>В таблице Printer для каждого ПК, однозначно определяемого уникальным кодом – code, указаны модель – model (внешний ключ к таблице Product) и price — цена. Z>Задание: Найдите производителей принтеров. Вывести: maker
Z>Ну т.е. в таблице Product есть именя фирм Samsung, hp, canon. А в таблице Printer даны ключи для таблицы Product. Нужно вывести название производителей принтеров, которые есть в таблице Printer
Z>Почему нельзя писать так
Так можно:
Select DISTINCT v.maker
From Product v, Printer p
Where p.model=v.model
LA>Угу... Особливо — FULL. Да еще и DISTINCT. Я бы посмотрел на производительность этого запроса на реальных данных...
Критика советов-ответов конечно важна, но было бы ещё лучше если бы ты написал как нужно в данном случае.
Скажем есть две таблицы
Product(maker, model)
PC(code, model, speed)
Таблица Product представляет производителя (maker), номер модели (model).
В таблице PC для каждого ПК, однозначно определяемого уникальным кодом – code, указаны модель – model (внешний ключ к таблице Product) и speed — частота процессора. Задание: Найдите производителей ПК с процессором не менее 450 Мгц. Вывести: maker
Ну я решаю так
SELECT DISTINCT maker
FROM Product INNER JOIN
PC ON speed>450 AND PC.model = Product.model
Ответ правильный выходит, выводит то что нужно, но тестовая программа заявляет, что где то косяк и решение другое.
ps: Если кто не вспомнил задачки с сайта www.sql-ex.ru, но там форум не понятный.
Здравствуйте, 1stein, Вы писали:
1>Внимательно читаем задачу:
1>Задание: Найдите производителей ПК с процессором не менее 450 Мгц.
ха-ха... что то уже видимо засиделся, спасибо, заработало
Вот ещё одна задачка, не понимаю как сделать.
Всё те же таблицы, но тут вроде нужна только одна
Product(maker, model, type)
maker — называние производителей
model — модели
type — тип продукта
Задание: Найти производителей, которые выпускают более одной модели, при этом все выпускаемые производителем модели являются продуктами одного типа.
Вывести: maker, type
Начал вот что то писать, но что то не то... хотел прокоментировать и понял что не туда лезу вроде как....
SELECT maker, type
FROM Product
GROUP BY maker, type
HAVING COUNT(maker)>1
Z>Задание: Найти производителей, которые выпускают более одной модели, при этом все выпускаемые производителем модели являются продуктами одного типа. Z>Вывести: maker, type
Z>Начал вот что то писать, но что то не то... хотел прокоментировать и понял что не туда лезу вроде как....
Не то, но направление верное. Группируем по производителю, раз их нужно найти. Оба условия нужно правильно выразить и поместить в having.
Здравствуйте, Zender, Вы писали:
Z>ps: Если кто не вспомнил задачки с сайта www.sql-ex.ru, но там форум не понятный.
Форум там вполне понятный: http://sql-ex.ru/faq.php#f10
Z>Задание: Найдите производителей ПК с процессором не менее 450 Мгц. Вывести: maker Z>Ну я решаю так
Z>SELECT DISTINCT maker Z>FROM Product INNER JOIN Z>PC ON speed>450 AND PC.model = Product.model
Z>Ответ правильный выходит, выводит то что нужно, но тестовая программа заявляет, что где то косяк и решение другое.
Здравствуйте, Zender, Вы писали:
LA>>Угу... Особливо — FULL. Да еще и DISTINCT. Я бы посмотрел на производительность этого запроса на реальных данных... Z>Критика советов-ответов конечно важна, но было бы ещё лучше если бы ты написал как нужно в данном случае.