mysql - 选择满足其他行条件的行
问题描述
我想问一下如何检查一列中的所有行(这是外键),然后如果所有这些行都满足某些条件,然后在 MySQL 中从中获取结果。
例如我有三个表如下
Products
ID Price
1 70
2 20
3 55
Bill
ID (others columns are not important)
100
200
300
ProductsBill
ID BillID ProductID
1 100 1
2 100 3
3 200 2
4 200 1
5 300 2
现在我想选择所有 BillsID,其中所有产品的价格高于 50,在这种情况下应该返回 ID 为 100 的账单,因为只有这个账单包含价格高于 50 的产品
先感谢您。
解决方案
加入表,按 billid 分组并在 having 子句中设置条件:
select
pb.billid
from productsbill pb inner join products p
on p.id = pb.productid
group by pb.billid
having min(p.price) > 50
推荐阅读
- wordpress - HTTP 站点在更改为 HTTPS 后停止显示来自站点的最新 RSS 提要
- javascript - Shopify 中叙事主题的幻灯片自动播放
- swift - AVPlayerItem 状态观察者 - 单元测试状态更改
- azure - 无法从 Visual Studio 2019 Web 部署到 Linux 应用服务
- firefox - 当我们在 Firefox 中禁用历史记录时会发生什么?
- node.js - 中间件必须是 middy 中的对象
- node.js - 无法使用 ssl 连接到 Heroku Postgres
- python - 单击列标题时,TkinterTreeCtrl MultiListBox 重新排序列表
- websphere - 是否可以集成 WAS 9 和 WSRR 8.5.6.2?
- r - 如何在具有不同列名的列名中间按字符折叠数据框列?