繁体   English   中英

串联Sql列

[英]Concatenate Sql column

SELECT DISTINCT a.assessement_group_id,
                b.title as dataa
FROM assessment_group a
JOIN assessment_category b
WHERE a.assessement_group_id = b.group_id

我正在使用联接来显示数据。结果如下所示

100     Partner Business Profile
99      Partner Activation
99      ajay test
100     ajaytest123

但是我想要这种答案

   100   Partner Business Profile,ajaytest123
   99     Partner Activation,ajay test

您可以将GROUP_CONCAT(DISTINCT ...)GROUP BY一起使用,以获取所需的输出:

SELECT a.assessement_group_id,
       GROUP_CONCAT(DISTINCT b.title)
FROM assessment_group a
INNER JOIN assessment_category b
    ON a.assessement_group_id = b.group_id
GROUP BY a.assessement_group_id

SQLFiddle

顺便说一下,我用显式的INNER JOIN替换了您的旧式隐式INNER JOIN语法。 现在将联接条件放入WHERE子句中通常被认为是不好的做法。

请尝试以下操作,希望对您有所帮助

select id, group_concat(`dataa` separator ',') as `dataa`
from
(
  SELECT distinct a.assessement_group_id id, b.title as dataa 
  from assessment_group a JOIN assessment_category b 
  WHERE a.assessement_group_id=b.group_id
) tbl
group by id;

请参阅MySql GROUP_CONCAT()作为分组查询的一部分。

http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html

例如,您将在查询末尾添加一个GROUP_BY assessement_group_id

在mySql中,您可以使用GROUP_CONCAT函数,请参见此处的更多详细信息: http : //dev.mysql.com/doc/refman/5.6/en/group-by-functions.html#function_group-concat

在您的初始查询中,您需要在select子句中添加GROUP_CONCAT(b.title),并且还需要在assesmentement_group_id之后添加分组依据。

这将帮助你

 SELECT A.ASSESSEMENT_GROUP_ID, GROUP_CONCAT(B.TITLE SEPARATOR ' , ') AS DATAA FROM  ASSESSMENT_GROUP A, ASSESSMENT_CATEGORY B WHERE A.ASSESSEMENT_GROUP_ID=B.GROUP_ID GROUP BY A.ASSESSEMENT_GROUP_ID;

暂无
暂无

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

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