powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите решить задачу
16 сообщений из 16, страница 1 из 1
Помогите решить задачу
    #39935397
AlenkaInt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Помогите с запросом, решаю задачки. И вот одну никак не могу. Подскажите, что я делаю не так.
Описание:
Схема БД состоит из четырех таблиц:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, price, screen)
Printer(code, model, color, type, price)
Таблица Product представляет производителя (maker), номер модели (model) и тип ('PC' - ПК, 'Laptop' - ПК-блокнот или 'Printer' - принтер). Предполагается, что номера моделей в таблице Product уникальны для всех производителей и типов продуктов. В таблице PC для каждого ПК, однозначно определяемого уникальным кодом – code, указаны модель – model (внешний ключ к таблице Product), скорость - speed (процессора в мегагерцах), объем памяти - ram (в мегабайтах), размер диска - hd (в гигабайтах), скорость считывающего устройства - cd (например, '4x') и цена - price. Таблица Laptop аналогична таблице РС за исключением того, что вместо скорости CD содержит размер экрана -screen (в дюймах). В таблице Printer для каждой модели принтера указывается, является ли он цветным - color ('y', если цветной), тип принтера - type (лазерный – 'Laser', струйный – 'Jet' или матричный – 'Matrix') и цена - price.
Задача:
Для каждого производителя, выпускающего ПК-блокноты c объёмом жесткого диска не менее 10 Гбайт, найти скорости таких ПК-блокнотов. Вывод: производитель, скорость.
Как я решила:
Код: sql
1.
Select Product.maker, Laptop.speed from Product join Laptop on Product.model = Laptop.model where Product.type = 'laptop' and Laptop.hd >=10


Выдает сообщение, что не правильно. Я так понимаю, что мне надо как то условие Product.type = 'laptop' поместить в раздел где соединение таблиц, но вот как это сделать, не знаю.
Спасибо!
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935416
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935420
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlenkaInt
как это сделать, не знаю.
В ON можно писать такие же сложные логические выражения, как и в WHERE. В том числе можно объединять несколько условий через AND или OR.
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935454
AlenkaInt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft
AlenkaInt
как это сделать, не знаю.
В ON можно писать такие же сложные логические выражения, как и в WHERE. В том числе можно объединять несколько условий через AND или OR.

Конечно можно, я но не знаю синтаксиса. Насчет этого это мое предположение, может дело в другом совсем. Мой запрос на тестовых данных выдает правильный ответ, а на в проверочной базе нет, на 2 строки больше, поэтому я даже не знаю в какую сторону копать, т.к. не вижу данных выборки.
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935457
AlenkaInt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina

Спасибо, написала и в Помощь.
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935459
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlenkaInt
Конечно можно, я но не знаю синтаксиса.
Как не знаете, если в вашем запросе уже все есть?
Код: sql
1.
Select Product.maker, Laptop.speed from Product join Laptop on Product.model = Laptop.model and Product.type = 'laptop' and Laptop.hd >=10
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935461
AlenkaInt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft
AlenkaInt
Конечно можно, я но не знаю синтаксиса.
Как не знаете, если в вашем запросе уже все есть?
Код: sql
1.
Select Product.maker, Laptop.speed from Product join Laptop on Product.model = Laptop.model and Product.type = 'laptop' and Laptop.hd >=10


Значит дело не в этом было.. Т.к. все равно такая же ошибка.
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935475
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а где проверяете какая ошибка дословно
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935489
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Намекну - 'Laptop' ака ПК-блокнот может быть и в таблице PC... во всяком случае ничто в описании этому не противоречит.
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935492
AlenkaInt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Ustinov,
Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе.
* Неверное число записей (больше на 2)
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935493
AlenkaInt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, у меня запрос возвращает больше записей, чем надо :-(
Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе.
* Неверное число записей (больше на 2)
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935498
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Намекну - 'Laptop' ака ПК-блокнот может быть и в таблице PC...
Вряд ли. Он же там будет неотличим от ПК.
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935587
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
Вряд ли. Он же там будет неотличим от ПК.
Он и будет ПК. Однако в вопросе нет ни полслова о том, что это лаптоп, определено только наименование типа, связанного с конкретным экземпляром по полю model неизвестно в какой из таблиц.
AlenkaInt
* Неверное число записей (больше на 2)
DISTINCT не забыли?
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935589
AlenkaInt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Да, ответили сегодня из Помощи
"Вам нужно вывести только УНИКАЛЬНЫЕ сочетания производитель, скорость.
А в таблице Laptop у одного и того же производителя может быть несколько моделей с одинаковой скоростью. Поэтому выводятся дубликаты."
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935592
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlenkaInt
нужно вывести только УНИКАЛЬНЫЕ сочетания
На мой взгляд, это кривой вопрос. Из него эта уникальность никак не следует. Могли бы за столько лет отрихтовать формулировки.
...
Рейтинг: 0 / 0
Помогите решить задачу
    #39935595
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
Могли бы за столько лет отрихтовать формулировки.
Да кто это будет делать? не смешно даже...
Эта БД у них ещё хоть немножко, но вменяема. А вот БД с кораблями - это просто апофеоз маразма. До сих пор не пофиксенный, и даже поползновений к тому не видать. А ведь сайту уже не год и не два.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите решить задачу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]