在查询执行之后,当我们试图获取树形结构的类别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 发布于 2019-06-06 15:43:02
对于重复的结果,可以使用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 =41https://stackoverflow.com/questions/56472848
复制相似问题