Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2022, 09:58   #1
Liraslava
Новичок
Джуниор
 
Регистрация: 31.10.2022
Сообщений: 2
Счастье SQL-запрос

Здравствуйте!

Не понимаю, как реализовать данный запрос:

Составьте отчёт, содержащий полные сведения обо всех номерах отеля Меркурия, с указанием имён постояльцев всех номеров.

Вижу запрос таким образом, что является определённо неправильным вариантом.


SELECT R.roomN, R.type, R.price
FROM Room R, Hotel H
WHERE R.hotelN = H.hotelN AND H.hotelName = "Меркурий"

UNION

SELECT G.guestName
FROM Guest G, Booking B
WHERE B.guestN = G.guestN AND (SELECT B.guestN
FROM Booking B, Room R
WHERE R.hotelN = B.hotelN);


Таблицы содержат следующие столбцы:
Hotel: hotelN, hotelName, city
Room: roomN, hotelN, type, price
Booking: hotelN, guestN, dateFrom, dateTo, roomN
Guest: guestN, guestName, guestAddress


P.S. Я знаю, что можно сделать в конструкторе и отдыхать. Но хочется дойти до запроса самостоятельно, однако, без указания направления пути я умру
Liraslava вне форума Ответить с цитированием
Старый 31.10.2022, 10:09   #2
Liraslava
Новичок
Джуниор
 
Регистрация: 31.10.2022
Сообщений: 2
По умолчанию

SELECT Room.roomN, Room.type, Room.price, Guest.huestName
FROM (Hotel INNER JOIN (Guest INNER JOIN Booking ON Guest.guestN = Booking.guestN) ON Hotel.hotelN = Bookig.hotelN) INNER JOIN Room ON Hotel.hotelN = Room.hotelN
WHERE (((Hotel.hotelName) = "Меркурий"));
Liraslava вне форума Ответить с цитированием
Старый 31.10.2022, 11:36   #3
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Liraslava Посмотреть сообщение
SELECT Room.roomN, Room.type, Room.price, Guest.huestName
FROM (Hotel INNER JOIN (Guest INNER JOIN Booking ON Guest.guestN = Booking.guestN) ON Hotel.hotelN = Bookig.hotelN) INNER JOIN Room ON Hotel.hotelN = Room.hotelN
WHERE (((Hotel.hotelName) = "Меркурий"));
Помоему, слишком намудрено
Код:
SELECT Room.roomN, Room.type, Room.price, Guest.guestName
FROM Hotel inner join Room on Hotel.hotelN= Room.hotelN 
     inner join Book on Room.roomN=Book.roomN
     inner join Guest on Book.guestN=Guest.guestN 
WHERE Hotel.hotelName = "Меркурий";
rita616 вне форума Ответить с цитированием
Старый 31.10.2022, 12:22   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
сведения обо всех номерах отеля Меркурия
а ЕСЛИ в каком-то номере НЕТ постояльца?
inner left
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
приложение Weather, делаю запрос оп всем параметрам, которые были указанны на сайте, но запрос не выполняется MustafaDzhemadin Помощь студентам 2 19.11.2019 00:14
SQL запрос в php - запрос в базу данных так, чтобы еще возвращалось значение, сколько строк затронуто volni PHP 29 16.09.2019 11:49
Запрос на выборку и отчет на этот запрос Camelot_2012 Microsoft Office Access 2 21.12.2011 16:48
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50