Обединяване на много таблици в SQL

Опитвам се да разбера този SQL въпрос: база данни за хотелска верига съдържа следните таблици:

    Hotel(HotelNo, HotelName, City)   
    Room(RoomNo, HotelNo, Type, Price)  
    Booking(HotelNo, GuestNo, DateFrom, DateTo, RoomNo)     
    Guest(GuestNo,  GuestName, GuestAddress)

Искам да изброя подробностите за всички стаи в хотел Grosvenor, включително името на госта, отседнал в стаята, ако стаята е заета.

Добре съм с обединяването на 2 таблици в SQL, но не знам как да обединя 4 таблици.

Моят опит вероятно ще бъде:

SELECT Room.*, Guest.GuestName 
    FROM Room
    INNER JOIN Hotel, Booking, Guest
    ON Hotel.HotelName = "Grosvenor Hotel", Hotel.HotelNo = Room.HotelNo, Booking.GuestNo = Guest.GuestNo;

Мисля, че това е напълно погрешно, но все пак, надявам се някой да знае какво трябва да правя. Благодаря предварително


person DMoney    schedule 05.05.2015    source източник
comment
technet.microsoft.com/en-us/library /ms191472(v=sql.105).aspx   -  person Felix Pamittan    schedule 05.05.2015
comment
Искате ли да имате решение за sql-сървър или mysql. Това са различни мисли.   -  person Jens    schedule 05.05.2015


Отговори (3)


Правилният синтаксис е:

SELECT Room.*, Guest.GuestName 
FROM Room
INNER JOIN Hotel on Hotel.HotelNo = Room.HotelNo, 
inner join Booking on Booking.hotelno= Hotel.HotelNo
inner join Guest on Booking.GuestNo = = Guest.GuestNo
where Hotel.HotelName = "Grosvenor Hotel"
person Jens    schedule 05.05.2015

Опитайте тази :

  select g.roomno, g.guestname 

  from hotel h join room r on h.hotelno = r.hotelno
   join booking b on b.hotelno=r.hotelno 
   join guest g on g.guestno=b.guestno

  where h.hotelname='Grosvenor Hotel';
person Sagar Joon    schedule 05.05.2015

можете също да опитате това .. Ще ви помогне

SELECT Room.*, Guest.GuestName FROM Room
INNER JOIN Hotel on Hotel.HotelNo = Room.HotelNo, 
join Booking on Booking.HotelNo= Hotel.HotelNo
join Guest on Booking.GuestNo = Guest.GuestNo
where Hotel.HotelName = "Grosvenor Hotel"
person Chetan Bodke    schedule 05.05.2015