MYSQL:左连接并使用 group_concat 将外观限制为一个

标签 mysql sql

我有一个这样的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   

当前结果是这样的 enter image description here

如何将 TASKID 分组连接到 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

关于MYSQL:左连接并使用 group_concat 将外观限制为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23005299/

相关文章:

php - SQL:查询搜索所有可能的单词

mysql - 从 MySQL + Django 删除条件数据

c# - SSL 是从远程到网络服务器交换信息的唯一途径吗?

php - MySQL 喜欢查询但不喜欢其他查询

Java 数据库立即断开连接

php - 选择他们的(timeStamped)生日晚 X 天的用户

sql - BigQuery 会缓存嵌套查询的结果吗

mysql - 在 MYSQL WHERE 子句中使用来自不同表的两个值的总和

mysql - 将 MySql 触发器转换为 SQL Server 2008 R2 触发器

MySQL动态加减行