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

多表关联查询:筛选paper封面物品并按总价(物品价+封面价)排序

解决这个SQL查询问题的方案

我来帮你搞定这个查询需求,咱们结合你的表结构和数据一步步来实现:

首先,咱们需要关联price和covers两张表来获取封面的价格,然后筛选出仅用paper封面的物品,计算物品价格+封面价格的总和,最后按这个总和排序。

最终SQL语句(针对单物品单记录的场景)

SELECT 
    p.itemId,
    p.name,
    p.price AS item_price,
    c.cover,
    c.price AS cover_price,
    (p.price + c.price) AS total_price
FROM price p
INNER JOIN covers c ON p.cover = c.cover
WHERE p.cover = 'paper'
ORDER BY total_price DESC;

如果需要对相同物品的重复记录求和(比如存在重复itemId的情况)

SELECT 
    p.itemId,
    p.name,
    SUM(p.price + c.price) AS total_sum
FROM price p
INNER JOIN covers c ON p.cover = c.cover
WHERE p.cover = 'paper'
GROUP BY p.itemId, p.name
ORDER BY total_sum DESC;

语句拆解说明

  • 表关联:用INNER JOIN把price(别名p)和covers(别名c)通过共同的cover字段关联,这样就能拿到每个物品对应的封面成本。
  • 筛选条件:WHERE p.cover = 'paper'确保只保留使用paper封面的物品。
  • 总和计算:(p.price + c.price)直接计算单个物品的总价,用AS给列起别名方便后续排序和查看;如果有重复物品记录,就用SUM()来汇总总价。
  • 排序:ORDER BY total_price DESC(或total_sum DESC)按总价从高到低排序,要是想升序排列去掉DESC就行。

测试你的数据会得到的结果

执行第一个语句后,结果如下:

itemIdnameitem_pricecovercover_pricetotal_price
1Book30paper535
3Flower10paper515

内容的提问来源于stack exchange,提问作者D. Make

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:42:58