这是我的数据库示例: orderdetails 表以及与 products 表相关的 ProID
| ProID | OrderID | OrderQuantity | OrderPrice |
| 93 | 17 | 1 | 150 |
| 16 | 18 | 1 | 100 |
| 93 | 19 | 3 | 450 |
| 93 | 17 | 1 | 150 |
产品表
| ProID | ProPicture | ProName | ProPrice |
| 93 | ./a.jpg | Iphone | 150 |
| 16 | ./b.jpg | Nokia | 100 |
如何从orderdetails表的products表中获取最畅销的产品信息:ProID、ProPiecture、ProName、ProPrice?
最佳答案
您可以在 ProID 上的表之间使用 SQL 连接,例如
from products as p
inner join orderdetails as od
on p.ProID = od.ProID
您可以使用group by语法来确保获得不同的行,例如
group by p.ProID
使用聚合函数(例如 sum、count 和 avg)来找出选择中的总计,例如
select sum(od.OrderQuantity) as total
使用order by语法来显示 HitTest 门的答案,例如
order by sum(od.OrderQuantity) desc
使用limit显示前n个结果,例如
limit 5
希望这能为您提供足够的指导来自行制定 SQL。
注释,我为表指定了别名,以确保列名之间不会发生冲突。由于 SQL 计算数据集的方式,您无法在订单语句中引用总计。我使用了内部联接,但您可能想研究左联接和右联接。
关于mysql - 我怎样才能查询这个sql来获得最畅销的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20510628/