连接Sql列

时间:2016-07-20 04:55:37

标签: mysql sql

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

5 个答案:

答案 0 :(得分:2)

您可以使用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替换了旧式的隐式连接语法。现在将连接条件放入WHERE子句通常被认为是不好的做法。

答案 1 :(得分:1)

尝试以下内容,希望这有帮助

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;

答案 2 :(得分:0)

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

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

例如,您可以在查询末尾添加GROUP_BY assessement_group_id

答案 3 :(得分:0)

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

在初始查询中,您需要在select子句中添加GROUP_CONCAT(b.title),并在assessement_group_id之后添加一个组。

答案 4 :(得分:0)

这个会帮助你

 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;