2017-04-19 33 views
-1

我對MySQL很新,也是我的第一個問題,如果有任何錯誤,請原諒我。Mysql加入 - 結果重複如何修復它

6張桌子我想用這個6表採取報告。我的一個報告訪問所有6個表並按照我們編寫的查詢打印數據。現在問題是我寫了我的查詢,但這會返回大量重複的數據。如何避免引導我請。

SELECT 
     @rownum := @rownum + 1 AS RowNumber, 
     a.vnumber,a.vname, 
     b.eid,b.name,b.mobile, 

     c.vid,c.emp_id,c.pick_place,c.start_time,c.drop_place,c.stop_time, 
     c.pickupkm,c.drops,c.type_of_trip,c.travelkm,c.tamt,c.dates, 
     d.vid,d.emp_id,d.expcal,d.exp1,d.exp2,d.exp3, 
     d.exp4,d.exp5,d.expamt,d.expdesc,d.dates, 
     e.emp_id,e.vid,e.opeing_km,e.opeing_cash,e.closing_km, 

     e.closing_cash,e.opeing_date,e.opeing_time,e.closing_date, 
     e.closing_time, f.vid,f.emp_id, 
     f.totkm,f.totamt,f.expenses,f.handover_amt, 
     f.balance_amt,f.handover_to,f.plstatus,f.entry_date 

    from 
     add_vehicle a 

     LEFT JOIN third_table c ON a.vnumber=c.vid 
     LEFT JOIN add_employees b ON b.eid=c.emp_id 
     LEFT JOIN fourth_table d ON a.vnumber=d.vid 
     LEFT JOIN shift e ON b.eid=e.emp_id 
     LEFT JOIN five_table f ON a.vnumber=f.vid, 

(SELECT @rownum := 0) r 
     WHERE 
       c.type_of_trip IS NOT NULL AND 
       c.dates BETWEEN '2017-04-01' AND '2017-04-19' AND 
       d.dates BETWEEN '2017-04-01' AND '2017-04-19' AND 
       f.entry_date BETWEEN '2017-04-01' AND '2017-04-19' AND 
       c.vid='STAT01' AND f.vid='STAT01' AND c.emp_id='1' AND 
       f.emp_id='1' AND e.emp_id='1' 

ORDER BY c.dates,f.entry_date DESC 

抱歉SQL小提琴不工作。

這是我的表格和示例數據。

My sample data

+1

添加示例數據和預期輸出 –

+1

你可能有多個記錄匹配,從另一個表中的一條記錄中的一個表。請向我們提供樣本數據,使用您當前的查詢在樣本數據上收到的實際結果以及預期結果。 – Shadow

+0

好吧我嘗試添加朋友 –

回答

0

也許你可以使用「分組依據」按列你希望是唯一的,或者用「獨特」

+0

我更新我的問題與示例數據 –

0

您可以使用GROUP BY功能,爲了避免重複的數據。只要使用group by來處理那些想要獨一無二的數據。下面的示例

GROUP BY eid 

在最後添加此查詢以避免同一員工。

您也可以使用INNER JOIN