我必须从三个表中获取数据,例如Userdetails,tasks,timedetails,所以我正在获取数据,但它是根据timedetails表进行复制的。例如,人的ID为-1.它在timedetails表中显示两次,然后我得到重复的行。
我的查询是
SELECT GROUP_CONCAT(B.task_status) as task_status,
GROUP_CONCAT(B.task_type) as task_type,
GROUP_CONCAT(B.task_id) as task_id,
GROUP_CONCAT(B.task_name) as task_name,
A.us_id,
A.us_name,
C.out_time
FROM ts_userdetails A
LEFT JOIN
cms_task B
ON B.emp_id = A.us_id
LEFT JOIN
ts_timedetails C
ON C.user_id=A.us_id
WHERE C.entry_date='2017-05-09' AND
A.us_id!='1'
GROUP BY C.user_id
我得到类似的结果
我不希望在显示的字段中出现重复的内容。
如果我对一个特定的人有2个时间细节,则id意味着发生了2次重复。我只想一次。
最佳答案
使用distinct
关键字
SELECT GROUP_CONCAT(distinct B.task_status) as task_status,GROUP_CONCAT(distinct B.task_type) as task_type,GROUP_CONCAT(distinct B.task_id) as task_id,GROUP_CONCAT(distinct B.task_name) as task_name,A.us_id,A.us_name,C.out_time FROM ts_userdetails A LEFT JOIN cms_task B ON B.emp_id = A.us_id LEFT JOIN ts_timedetails C ON C.user_id=A.us_id WHERE C.entry_date='2017-05-09' AND A.us_id!='1' GROUP BY C.user_id
关于mysql - 避免在Mysql左联接查询中重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43863973/