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 
      後面腦補
相關文章
相關標籤/搜索