mysql - 查询以获得关系数据库中每间酒店每间客房的最低价格

标签 mysql relational-database

我有一个基于为大学项目设置的酒店预订网站的关系数据库模型,但是我被一个查询难住了。

据我所知:

SELECT DISTINCT
    property.property_id,
    property_name,
    property_description,
    star_rating,
    room_base_price
FROM
    property
INNER JOIN rooms ON property.property_id = rooms.property_id;

问题是我的数据库中列出了每个属性的多个房间。在此查询中,我想选择每家酒店价格最低的房间。我目前的做法是,显示每个特性的每个房间及其单独的价格。

任何人都可以建议我如何编写一个查询,在该查询中我将能够返回属性(即酒店)中房间的最低价格,其中每个酒店只有一行而不是返回多行每个属性?

最佳答案

尝试以下查询:

SELECT DISTINCT
    property.property_id,
    property_name,
    property_description,
    star_rating,
    room_base_price
FROM
    property
INNER JOIN rooms ON property.property_id = rooms.property_id;
where (rooms.property_id,rooms.room_base_price) in
                                                  (select property_id,min(room_base_price) 
                                                   from rooms
                                                   group by property_id
                                                  )
;

希望对你有帮助!

关于mysql - 查询以获得关系数据库中每间酒店每间客房的最低价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47462466/

相关文章:

mysql - 带有便利设施的建筑物的 SQL 结构

Mysql查询即使表为空也返回结果

php - 查询日期中的月、日、年

php - 未定义索引 : submission with html5

mysql - 在 osTicket 数据库中查询 'ticket activity'

mysql - 没有 wp 函数的 WordPress 自定义元查询 (wo.wp_query())

sql - 存在与不存在查询误区?

database - 具有显示顺序的文件系统(文件、文件夹)

sql - 当 WHERE 子句依赖于旧值时,Oracle 中同时 UPDATES 的一致性

mysql - (Oracle) 一对一和插入查询