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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 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周前 评论

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