You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从关联表查询各主展厅对应最低价格的完整数据

主展厅对应最低价格内厅的查询方案

方案1:用窗口函数(推荐,适配MySQL 8.0+、PostgreSQL、SQL Server等现代数据库)

SELECT 
    h.Name AS 主展厅名称,
    hi.Name AS 内厅名称,
    hi.Price AS 最低价格,
    hi.FromDate AS 周期开始日期,
    hi.EndDate AS 周期结束日期
FROM (
    SELECT 
        *,
        -- 按主展厅分组,同组内按价格升序排序,最低价格的记录标记为1
        ROW_NUMBER() OVER(PARTITION BY IdHalls ORDER BY Price ASC) AS rn
    FROM Halls_Interior
) AS hi
JOIN Halls h ON hi.IdHalls = h.id
WHERE hi.rn = 1;

如果允许同一主展厅存在多个价格相同的最低内厅,把ROW_NUMBER()换成RANK()即可,这样所有同价的最低记录都会被保留。

方案2:子查询关联(兼容旧版数据库)

如果你的数据库不支持窗口函数(比如MySQL 5.x),可以用这种方式:

SELECT 
    h.Name AS 主展厅名称,
    hi.Name AS 内厅名称,
    hi.Price AS 最低价格,
    hi.FromDate AS 周期开始日期,
    hi.EndDate AS 周期结束日期
FROM Halls_Interior hi
JOIN Halls h ON hi.IdHalls = h.id
-- 先算出每个主展厅的最低价格,再关联筛选出对应记录
JOIN (
    SELECT IdHalls, MIN(Price) AS MinPrice
    FROM Halls_Interior
    GROUP BY IdHalls
) AS min_prices ON hi.IdHalls = min_prices.IdHalls AND hi.Price = min_prices.MinPrice;

这个方案会返回所有价格等于对应主展厅最低价格的内厅记录。

内容的提问来源于stack exchange,提问作者EBRAHEM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 20:27:06