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 
      後面腦補
      
  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章