Mysql解决多对多查询问题

  • 2017-10-19
  • 53
  • 0
  • 0

背景

今天项目遇到一个问题,要查询以下数据结构
- 品类>线上线下>日周月年>最新日期 & Data
以上都是一对多的关系

解决思路

lineType,timeType作为入参,查询不同的表时在mybatis中拼接表名,
开始想着用union将25个品类的select做合并结果集,后请教同事给出入下解决方案:

select * from market_abnormal_offline_daily a
where a.daily in ('2017-09-18','2017-09-19')
and CONCAT(a.daily,a.category) in ('2017-09-18空调','2017-09-19彩电')
and a.province_name ='全国'
and brand ='国美';

category和date日期是多对多关系,先查daily索引,在查用concat将“日期和品类”字段拼接在一起,做为条件一次可以返回全部25个品类对应不同日期的记录。

评论

还没有任何评论,你来说两句吧

发表评论