不链表实现按照商品销量排序,排序字段在另一张表

查询可以用with实现,排序就不好处理了,感觉很多场景都需要跨表排序,这样岂不是必须要链表,有没有搞过的大神指点下

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 27

不去连表获取排序字段,那就先根据排序获取到对应商品的顺序,然后用find_in_set("id",'2,3,4,1')去排序

2年前 评论
彭彭 (楼主) 2年前
小猪蹄子 (作者) 2年前
小猪蹄子 (作者) 2年前
彭彭 (楼主) 2年前
彭彭 (楼主) 2年前
小猪蹄子 (作者) 2年前
小猪蹄子 (作者) 2年前
bishi123 2年前

不用with用join呗。

我问一下,这种需求对应的原生SQL写的出来吗?

2年前 评论
彭彭 (楼主) 2年前
bishi123 2年前
L学习不停 (作者) 2年前

那就增加冗余字段,创建订单后异步更新商品销量字段

2年前 评论
彭彭 (楼主) 2年前
bishi123 2年前
Imuyu (作者) 2年前
sanders

要不把销量写在商品表里,定期或通过事件进行更新,再排序不就简单了。

2年前 评论
彭彭 (楼主) 2年前
sanders (作者) 2年前
bishi123 2年前
sanders (作者) 2年前

不知道你具体场景,既然排序字段在另外一张表,干嘛不用那张表,然后with出商品信息?

2年前 评论
小猪蹄子 2年前

结案了吗,最终解决办法是什么?

2年前 评论
彭彭 (楼主) 2年前
Squ1rrel

如果总是跨表高频率查询,是不是考虑表架构设计有问题了

反正从算法设计的角度,跨域做事情,时间很容易时间爆炸

看看能不能 cache 高频率的查询部分,或者增加字段做 cache

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!