mysql 中查询某个分类下的最大的前3条的数据怎么查询
1,这个问题对我来说是有点复杂的,先把答案的例子发下。
SELECT distinct supplier_id ,price FROM ces_contract_back_money a
WHERE (SELECT count(*) FROM ces_contract_back_money b WHERE b.supplier_id=a.supplier_id AND b.price>a.price )<5
ORDER BY supplier_id asc,price desc
这个是查询前5条的数据,这个distinct ,这个数据是去重的,里层的这个数据库语句是对所有的数据相比较,无论是a 表,还是c 表,其实都是一个表,那么这样写的目的就是把这两个表的数据进行对比,取出最大的前五条的数据。还有这个数据库语句里面有个两个排序,一个根据是供应商id 进行的升序排序,还有一个是根据金额的降序的排序。这两个一起进行排序。最重要的就是里面那层的数据库语句,这个数据库语句通过比对表中的所有数据拿到最大的前4个数据,最终解决了这个问题。
这个文章参考了 https://blog.csdn.net/zhichao2001/article/details/6068893 ,非常感谢。