请问一个订单列表搜索的问题

现有一张商家表shop(id,shop_name…)
订单表order(id,shop_id…)
订单商品表order_goods(id,order_id,goods_name…)
现在在《我的订单》列表页面,可进行搜索,需命中商家名称或者商品名称,请问mysql该如何进行编写?
数据类似如下:

本人想法:查询出该用户的所有订单,再用php处理数组的方式,去查询shop_name,或者goods_name有命中的情况,再用array_splice去截取进行分页。
请问有没有什么更好的方案?

讨论数量: 3

这种应该用join,具体用法自己百度

1年前 评论

建议弄一个搜索商家 或者商品 下拉框 查到对应信息,再传入对应列表 带上对应id查询 比较好 减少了join

1年前 评论

基本思想就是联表,但是看你数据格式好像存在分单的情况,先查出所有符合条件的订单,数据格式(一笔订单多个商店,商店底下多个商品这种json格式)的编排可以后续处理

select
t.*,shop.shop_name,good.goods_name
from order as t 
left join shop as s ON t.shop_id = shop.id
left join order_goods as good ON t.id =  good.order_id
where shop_name like 'xx%' OR good.goods_name like 'ss%'
1年前 评论

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