首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自mysql查询的重复结果

来自mysql查询的重复结果
EN

Stack Overflow用户
提问于 2019-06-06 15:33:47
回答 1查看 57关注 0票数 5

在查询执行之后,当我们试图获取树形结构的类别id时,我们得到了重复的id。我们需要一个没有重复id的输出

代码语言:javascript
复制
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

实际输出:

代码语言:javascript
复制
190,256,190,257,191,261,300,191,262,192,267

预期输出:

代码语言:javascript
复制
190,256,257,191,261,300,262,192,267

示例数据库数据:

代码语言:javascript
复制
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 
EN

回答 1

Stack Overflow用户

发布于 2019-06-06 15:43:02

对于重复的结果,可以使用DISTINCT关键字。

代码语言:javascript
复制
    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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56472848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档