2014-04-11 25 views
0

我有這樣的SQL:MYSQL:左聯接和限制appearence一個使用組CONCAT

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 

而目前的結果是這樣的enter image description here

我怎麼組CONCAT的TASKID成1 row and TUSERNAME結果爲:boon | danny | jack | goh | ncc

分開|

查看全尺寸IMG在這裏:http://i.stack.imgur.com/WXH3g.jpg

+1

'GROUP_CONCAT(DISTINCT COALESCE(USR_NAME, '無') SEPARATOR'|')'並添加GROUP BY列.... –

回答

0

確切的工作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 

感謝@約翰胡