MySQL查询结果重复

5

在查询执行后,当我们尝试获取树状类别ID时,我们得到了重复的ID。我们希望输出不包含重复ID。

SELECT 
  GROUP_CONCAT(CONCAT_WS(',',t1.CategoryID,t2.CategoryID,t3.`CategoryID`, t4.CategoryID)) AS id 
FROM prodcategory AS t1 
LEFT JOIN prodcategory AS t2 ON t2.ParentCategoryID = t1.CategoryID 
LEFT JOIN prodcategory AS t3 ON t3.ParentCategoryID = t2.CategoryID 
LEFT JOIN prodcategory AS t4 ON t4.ParentCategoryID=t3.CategoryID 
WHERE t1.ParentCategoryID =41

实际输出:

190,256,190,257,191,261,300,191,262,192,267

预期输出:

190,256,257,191,261,300,262,192,267

示例数据库数据:

CategoryID |  CategoryName |  ParentCategoryID
   41      |       a       |        1
   190     |       b       |        41
   191     |       c       |        41
   192     |       d       |        41
   256     |       e       |        190
   257     |       f       |        190
   261     |       g       |        191
   262     |       h       |        191
   300     |       i       |        261
   267     |       j       |        192 

附上与您所生成的输出匹配的样本数据。 - Kamil Gosciminski
SELECT GROUP_CONCAT(DISTINCT CONCAT_WS(.. 有帮助吗? - Arulkumar
@Arulkumar 仍然存在重复。 - Süresh AK
@KamilGosciminski,你需要包含数据的示例表结构吗? - Süresh AK
@SüreshAK 是的,请阅读有关提供 MVCE 的更多信息:https://stackoverflow.com/help/minimal-reproducible-example - Kamil Gosciminski
类别ID | 类别名称 | 父类别ID 41 | a | 1 190 | b | 41 191 | c | 41 192 | d | 41 256 | e | 190 257 | f | 190 261 | g | 191 262 | h | 191 300 | i | 261 267 | j | 192 - Süresh AK
1个回答

0

你可以使用DISTINCT关键字来去除重复结果。

    SELECT GROUP_CONCAT(CONCAT_WS(',',DISTINCT 
    t1.CategoryID,DISTINCT t2.CategoryID,DISTINCT t3.`CategoryID`,DISTINCT  
    t4.CategoryID)) AS id FROM prodcategory AS t1 
    LEFT JOIN prodcategory AS t2 ON t2.ParentCategoryID = t1.CategoryID 
    LEFT JOIN prodcategory AS t3 ON t3.ParentCategoryID = t2.CategoryID 
    LEFT JOIN prodcategory AS t4 ON t4.ParentCategoryID=t3.CategoryID 
    WHERE t1.ParentCategoryID =41

1
结果中仍然存在重复项 - Süresh AK
发送数据备份给我?dhanushkasasankapayza@gmail.com - Dhanushka sasanka
在每个列中添加DISTINCT会抛出语法错误。 - Süresh AK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接