我有一个表结构是这样的:组通过与顺序的MySQL通过
库存表
id stock
1 0
2 113
3 34
4 50
产品表(这两个表与ID列连接)
id parid name
1 1 A
2 1 B
3 2 C
4 3 D
我在我的查询中使用了组parid
,这是我的项目需求。
查询:
select *
from products as p inner join
stock as s on p.id=s.id
group by parid
order by stock DESC
它显示结果为:
id parid name
4 3 D
3 2 C
1 1 A
我要的是:
Group by
应根据产品大小排序的股票包括产品。
所以查询应取下面的结果,而不是上面的一个:
id parid name
4 3 D
3 2 C
2 1 B
任何帮助将不胜感激。
这可能是一个答案
使用下面的两个答案,我想出了下面的查询其目前似乎解决了问题(仍然需要检查多例)。
SELECT * FROM products p inner join stock i on p.id=i.id inner join (select max(stock) maxstock,parid from products inner join stock on products.id=stock.id group by parid) q on q.parid=p.parid and q.maxstock=i.stock group by p.parid
什么是这些表之间的关系?加入s.id = p.id? –
关系是一个是产品表,另一个是库存表。对于每个产品,都有库存表。 –
是的,看起来像一个小错字。什么是parid?也许如果我更好地理解它,它可以帮助我想出一个解决方案。 – FrankerZ