@miloh31835

MySQL, как с помощью скалярных подзапросов вывести поля из разных таблиц?

Как мне вывести количество полётов и имя человека, если они находятся в разных таблицах?
1 задание для самопроверки
Объединять таблицы нельзя

Вот само задание
5ff9c35b06899805813285.png

Это схема БД
5ff9c3969068a520688805.png
  • Вопрос задан
  • 3364 просмотра
Решения вопроса 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
А если пассажир зарегистрировался, но не покупал билетов?
А если у нескольких пассажиров совпадают имена?

Вот так это можно сделать с объединением таблиц:
SELECT COUNT(pit.id) AS count, MAX(p.name) AS name
FROM Passenger AS p
LEFT JOIN Pass_in_trip AS pit ON p.id = pit.passenger
GROUP BY p.id

А вот так без объединения, в вложенным запросом:
SELECT (SELECT COUNT(pit.id) FROM Pass_in_trip AS pit WHERE p.id = pit.passenger) AS count, p.name
FROM Passenger AS p
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@galaxy
Тема "Вложенные SQL запросы" ни о чем не говорит?
Ответ написан
Комментировать
@Nuschka07n
Добрый день а кто может объяснить что откуда брать для этого задания,(что было дано выше) я тоже начала учить SQL и мне очень не понятен момент pit.id откуда это берем??? и почему берем MAX(p.name) , если скопировать ответ и вставить он верен, но мне очень не понятно, помогите!!!!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы