SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.05.2018 14:20:02

juliamv
Участник
Зарегистрирован: 18.05.2018
Сообщений: 6

Решение задачи с использованием подзапросов

Здравствуйте, уважаемые пользователи форума! Я только начинаю знакомство с mysql и застряла на решении казалось бы простой задачи, помогите, пожалуйста, с ней разобраться.
Текст задачи:
Составьте запрос, который будет получать из таблицы полетов и таблицы типов самолетов, представленных ниже, количество пассажиров, перевезенных каждым типом самолета. В итоговой таблице должны быть две колонки: название типа самолета, и количество пассажиров.
https://ibb.co/jp490d

Отредактированно juliamv (18.05.2018 14:23:32)

Неактивен

 

#2 18.05.2018 14:23:38

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Решение задачи с использованием подзапросов

Здравствуйте. Вы не прикрепили изображение.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 18.05.2018 14:24:23

juliamv
Участник
Зарегистрирован: 18.05.2018
Сообщений: 6

Re: Решение задачи с использованием подзапросов

Да, что-то выдает ошибку при прикреплении, вот это изображение https://ibb.co/jp490d

Неактивен

 

#4 18.05.2018 14:33:42

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Решение задачи с использованием подзапросов

Попробуйте

SELECT
  SUM(f.`ПроданоБилетов`), pt.`Название`
FROM
  `Flights` f
  JOIN `PlaneTypes` pt ON f.`ТипСамолёта` = pt.`НомерТипа`
GROUP BY
  pt.`НомерТипа`;


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 18.05.2018 14:41:34

juliamv
Участник
Зарегистрирован: 18.05.2018
Сообщений: 6

Re: Решение задачи с использованием подзапросов

в этой задаче я не могу использовать JOIN, ON, мне доступны только блоки, указанные внизу изображения.
Мне кажется наиболее подходящим вариант:
SELECT название, (SELECT SUM(ПроданоБилетов) FROM Flights ORDER BY ТипСамолета WHERE ТипСамолета = types.Номер) FROM PlaneTypes types;
но он не верный

Неактивен

 

#6 18.05.2018 14:48:35

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Решение задачи с использованием подзапросов

Ну что за придирки smile.
Лабораторная работа это или что у Вас?

Попробуйте тогда


SELECT
  pt.`Название`,
  (SELECT SUM(f.`ПроданоБилетов`) FROM `Flights` f WHERE pt.`НомерТипа` = f.`ТипСамолёта`)
FROM
  `PlaneTypes` pt;


Что касается Вашего запроса - то идея-то верная (только зачем order by? Вы же там одну чиселку получаете в запросе, чего там сортировать?).
Что именно не так в результате?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 18.05.2018 15:03:46

juliamv
Участник
Зарегистрирован: 18.05.2018
Сообщений: 6

Re: Решение задачи с использованием подзапросов

Это дистанционная программа по обучению основам mysql. Не знаю что они там ожидают увидеть в качестве правильного результата, но ответ всё равно не верный(((

Неактивен

 

#8 18.05.2018 15:07:54

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Решение задачи с использованием подзапросов

Ну, если они не скажут, что именно неверно - и главное - почему, то трудно что-то посоветовать.
В таких вещах лучше отталкиваться от тестового набора данных - когда он есть - пусть скажут, какой результат должен вернуть запрос.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#9 18.05.2018 15:44:08

juliamv
Участник
Зарегистрирован: 18.05.2018
Сообщений: 6

Re: Решение задачи с использованием подзапросов

Спасибо! Видимо придется создать эту базу данных и на ней отработать варианты ответов, так просто эта задача меня не отпустит.

Неактивен

 

#10 18.05.2018 15:45:45

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Решение задачи с использованием подзапросов

Ну как-то так. Создайте пример на sqlfiddle с таблицей, тестовыми данными и попросите привести их тот набор, что они хотят smile.
А поделитесь ссылкой на программу пожалуйста? Хоть посмотрим, что за ребята. Можно в личку ).


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#11 18.05.2018 22:31:44

juliamv
Участник
Зарегистрирован: 18.05.2018
Сообщений: 6

Re: Решение задачи с использованием подзапросов

Ой, класс, у меня даже мысли не было о том, что есть sqlfiddle, спасибо за подсказку!)

Неактивен

 

#12 19.05.2018 08:22:12

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Решение задачи с использованием подзапросов

Обращайтесь :-).
http://sqlfiddle.com/#!9/ae8b4/5
Что-то такое создайте.
Удачи в борьбе с академией, пишите, если будут трудности :-D.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#13 10.04.2019 18:51:56

GermanKZ
Участник
Откуда: Казахстан
Зарегистрирован: 10.04.2019
Сообщений: 1

Re: Решение задачи с использованием подзапросов

Решение:


SELECT название, (SELECT SUM(ПроданоБилетов) FROM Flights WHERE ТипСамолета = types.Номер) FROM PlaneTypes AS types;



Нужно добавить AS в конце запроса перед types.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson