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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - 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,526
По умолчанию

Цитата:
сведения обо всех номерах отеля Меркурия
а ЕСЛИ в каком-то номере НЕТ постояльца?
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