查询查找具有给定权重的商品的订单

  • 本文关键字:权重 查找 查询 sql
  • 更新时间 :
  • 英文 :


我有以下查询:

select a.order_id, b.item_name, b.item_weight from orders a join items b on a.item_id = b.item_id

现在我的任务是。一个订单可以有多个项目。现在我必须查看订单中的每个项目,并选择订单,使其item_weight不超过50。

例如,上面的查询返回:

order_id , item_name, item_weight
1       ,  toy      , 10
1       , plate     , 30
1       , book      , 60
2       , toy       , 20
2       ,book       , 30
2       , plate     , 40
2       ,   apple   , 10

答案应该是只选择订单id 2,因为它包含所有权重小于50的商品。

有很多方法可以做到这一点,其中一些取决于您的dbms。这个方法应该适用于大多数情况:

select a.order_id,  b.item_name,  b.item_weight 
from orders a 
join items b 
on a.item_id = b.item_id
where a.order_id not in 
(select a.order_id 
from orders a
join items b
on a.item_id = b.item_id
where b.item_weight >= 50
)

相关内容

  • 没有找到相关文章

最新更新