为了完成多表查询,查询住户中住在“大酒店”的人的酒店的价钱、地址和名字,我们首先假设有以下三个表:
住户信息表 (residents
):
resident_id
:住户IDname
:住户姓名address
:住户地址等预订信息表 (reservations
):
reservation_id
:预订IDresident_id
:住户ID(外键,关联到 residents
表)hotel_id
:酒店ID(外键,关联到 hotels
表)酒店信息表 (hotels
):
hotel_id
:酒店IDname
:酒店名称address
:酒店地址price
:酒店价格假设“大酒店”是一个具体的酒店名称,而不是地址字段的一部分。以下是完成该查询的SQL语句:
SELECT h.name AS hotel_name, h.address, h.price
FROM reservations r
JOIN hotels h ON r.hotel_id = h.hotel_id
JOIN residents res ON r.resident_id = res.resident_id
WHERE h.name = '大酒店';
这个查询的步骤如下:
reservations
表中选择预订信息。JOIN
将 reservations
表和 hotels
表通过 hotel_id
连接起来。JOIN
将 reservations
表和 residents
表通过 resident_id
连接起来。WHERE
子句中,筛选出 hotels
表中 name
等于“大酒店”的记录。这样,查询结果将包含所有住在“大酒店”的住户所预订的酒店的信息,包括酒店名字、地址和价格。