mysql使用left join时,右表数据有重复数据的处理

  • LEFT JOIN 关键字会从左表 (table_name1) 那里返回全部的行,即便在右表 (table_name2) 中没有匹配的行。 此时右表 (table_name2)右表有经过 on 关键字过滤后没有数据或只有一条数据时是没有问题的。
  • 我要说的是若是右表 (table_name2)出现重复数据(业务上彻底重复)该怎么处理。
    1. 当右表 (table_name2)经过 on 关键字过滤后出现重复数据,此时查出的数据就会是,右表数据*重复的数据+右表其余条件数据,和咱们所需数据的条数不一样。
    2. 个人解决方法是,先根据过滤字段分组查询一次右表 (table_name2),把相同的数据过滤掉,而后把这个结果当成右表在进行关联
      前面脑补 
      LEFT JOIN (SELECT MODEL_CODE,MODEL_NAME from tm_model GROUP BY MODEL_CODE) tm on tav.model_code = tm.MODEL_CODE 
      后面脑补
相关文章
相关标签/搜索