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

如何筛选所有菜品单价均高于10的餐厅及对应菜品信息?

解决方法

方法一:使用NOT EXISTS子查询排除存在低价菜品的餐厅

这种方法通过子查询检查每个餐厅是否存在单价≤10的菜品,只保留完全没有低价菜品的餐厅及其所有菜品:

SELECT r.name AS restaurant_name, fi.name AS food_name, fi.price
FROM restaurant r
JOIN food_item fi ON r.id = fi.restaurant_id
WHERE NOT EXISTS (
    SELECT 1
    FROM food_item fi2
    WHERE fi2.restaurant_id = r.id
    AND fi2.price <= 10
);

方法二:通过GROUP BY + HAVING筛选符合条件的餐厅

先分组统计每个餐厅的最低菜品价格,筛选出最低价格>10的餐厅(说明该餐厅所有菜品单价都高于10),再关联获取对应的菜品信息:

SELECT r.name AS restaurant_name, fi.name AS food_name, fi.price
FROM restaurant r
JOIN food_item fi ON r.id = fi.restaurant_id
JOIN (
    SELECT restaurant_id
    FROM food_item
    GROUP BY restaurant_id
    HAVING MIN(price) > 10
) valid_restaurants ON r.id = valid_restaurants.restaurant_id;

方法三:使用窗口函数标记餐厅最低价格

通过窗口函数给每条菜品记录标记所属餐厅的最低菜品价格,再筛选出最低价格>10的记录:

SELECT restaurant_name, food_name, price
FROM (
    SELECT 
        r.name AS restaurant_name,
        fi.name AS food_name,
        fi.price,
        MIN(fi.price) OVER (PARTITION BY r.id) AS min_restaurant_price
    FROM restaurant r
    JOIN food_item fi ON r.id = fi.restaurant_id
) sub
WHERE min_restaurant_price > 10;

以上三种方法都能精准排除存在低价菜品的餐厅,最终只输出所有菜品单价均高于10的餐厅名称、菜品名称及单价。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:21:07