1、问题:有两张表,一张商品表,一张分类表,我需要查出每个分类的前三个商品出来
2、方法:使用MySQL8的窗口函数 (ROW_NUMBER() OVER() ),好像 是8版本开始才支持。
select * from (select t.title tag_title, r.tag_id, m.title title, row_number() over (partition by r.tag_id order by m.sort desc ) as row_num from positive_meditation m inner join positive_meditation_tag_rel r on (m.id = r.record_id and t.id = r.tag_id) where t.category_id in (1, 2)) t where row_num < 4;
参考资料:MySQL 8.0窗口函数 ROW_NUMBER() OVER()函数的使用_Ch3n的博客-CSDN博客_mysql row_number()over()