我必须从三个表中获取数据,例如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


我得到类似的结果
mysql - 避免在Mysql左联接查询中重复-LMLPHP

我不希望在显示的字段中出现重复的内容。

如果我对一个特定的人有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/

10-12 00:20
查看更多