繁体   English   中英

MYSQL:左联接,并使用组concat将出现限制为一个

[英]MYSQL: Left Join and limit appearence to one using group concat

我有这样的SQL:

SELECT TASKID, TSK_STATUSID, TSK_CODE, TSK_TITLE, TSK_REF_NO, TSK_DESCRIPTION, STS_NAME, COALESCE(USR_NAME, 'None') AS TUSERNAME 
FROM T_TASK_REQUEST 
LEFT JOIN T_STATUS ON T_STATUS.STATUSID=T_TASK_REQUEST.TSK_STATUSID 
LEFT JOIN T_TASK_USER ON TUS_TASKID = TASKID 
LEFT JOIN T_USER ON USERID = TUS_USERID 
LEFT JOIN T_PROJECT ON T_PROJECT.PROJECTID=T_TASK_REQUEST.PROJECTID 
WHERE TSK_STATUSID='1' AND T_TASK_REQUEST.PROJECTID='2' ORDER BY TASKID DESC LIMIT 10   

现在的结果是这样的 在此处输入图片说明

我如何将连续的任务集分组为1行, TUSERNAME的结果为:boon | danny | jack | goh | ncc

分开|

在此处查看完整尺寸的IMG: http//i.stack.imgur.com/WXH3g.jpg

修改后的确切工作SQL是:

SELECT TASKID, TSK_STATUSID, TSK_CODE, TSK_TITLE, TSK_REF_NO, TSK_DESCRIPTION, STS_NAME, GROUP_CONCAT(DISTINCT COALESCE(USR_NAME, 'None') SEPARATOR '|') AS TUSERNAME 
FROM T_TASK_REQUEST 
LEFT JOIN T_STATUS ON T_STATUS.STATUSID=T_TASK_REQUEST.TSK_STATUSID 
LEFT JOIN T_TASK_USER ON TUS_TASKID = TASKID 
LEFT JOIN T_USER ON USERID = TUS_USERID 
LEFT JOIN T_PROJECT ON T_PROJECT.PROJECTID=T_TASK_REQUEST.PROJECTID 
WHERE TSK_STATUSID='1' AND T_TASK_REQUEST.PROJECTID='2' 
GROUP BY TASKID
ORDER BY TASKID DESC LIMIT 10   

感谢@John Woo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM