1. 程式人生 > >mysql使用left join時,右表資料有重複資料的處理

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 
      後面腦補