我正在设法解决这个SQL问题:
 一家连锁酒店的数据库包含以下表格:

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


我想列出格罗夫纳酒店所有客房的详细信息,包括入住房间的客人的姓名(如果房间已被占用)。

我可以在SQL中联接2个表,但是我不知道如何联接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;


我认为这是完全错误的,但是无论如何,希望有人知道我应该做什么。提前致谢

最佳答案

正确的语法是:

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"

关于mysql - 在SQL中联接许多表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30047187/

10-11 12:59