Php 在MySQL中使用逗号分隔ID获取值并连接两个表

Php 在MySQL中使用逗号分隔ID获取值并连接两个表,php,mysql,Php,Mysql,我有两个表,如下所示 产品类别表 ╔═════════════╦═════════════════╗ ║ category_id ║ parent_id ║ ╠═════════════╬═════════════════╣ ║ 1 ║ 8,7 ║ ║ 2 ║ 8 ║ ╚═════════════╩═════════════════╝ 产品类别描述表 ╔═════════╦═════════

我有两个表,如下所示

产品类别表

╔═════════════╦═════════════════╗
║ category_id ║    parent_id    ║
╠═════════════╬═════════════════╣
║ 1           ║ 8,7             ║
║ 2           ║ 8               ║
╚═════════════╩═════════════════╝
产品类别描述表

╔═════════╦═══════════╦═════════╗
║ id      ║category_id║ name    ║
╠═════════╬═══════════╬═════════╣
║ 1       ║   1       ║ Test    ║
║ 2       ║   2       ║ Test1   ║
║ 3       ║   3       ║ Test2   ║
║ 4       ║   7       ║ Test3   ║
║ 5       ║   8       ║ Test4   ║
╚═════════╩═══════════╩═════════╝
我希望输出如下所示

    ╠══════════╬═══════════════╣
    ║ 1        ║ Test4, Test3  ║
    ║ 2        ║ Test4         ║
    ╚══════════╩═══════════════╝
我尝试了以下查询,但不起作用:

SELECT GROUP_CONCAT(b.category_name) cat_name 
FROM  product_category  a 
INNER JOIN product_category_description b 
ON FIND_IN_SET(a.parent_id, b.category_id) > 0 
GROUP   BY b.category_id

除了
分组依据
字段外,其他都是正确的

SELECT GROUP_CONCAT(b.category_name) cat_name 
FROM  
product_category  a 
INNER JOIN 
product_category_description b 
ON FIND_IN_SET(a.parent_id, b.category_id) > 0 
GROUP BY 
a.category_id

除了
分组依据
字段外,其他都是正确的

SELECT GROUP_CONCAT(b.category_name) cat_name 
FROM  
product_category  a 
INNER JOIN 
product_category_description b 
ON FIND_IN_SET(a.parent_id, b.category_id) > 0 
GROUP BY 
a.category_id

使用我在数据库中检查的以下查询

SELECT a.category_id,GROUP_CONCAT(DISTINCT b.name)
FROM product_category_description  AS b
INNER JOIN `product_category` as a 
ON  FIND_IN_SET(b.category_id,a.parent_id)
GROUP BY category_id

使用我在数据库中检查的以下查询

SELECT a.category_id,GROUP_CONCAT(DISTINCT b.name)
FROM product_category_description  AS b
INNER JOIN `product_category` as a 
ON  FIND_IN_SET(b.category_id,a.parent_id)
GROUP BY category_id

它的返回值如1 Test4、Test4、Test3、Test3如果您需要不同的类别名称,那么您需要使用
distinct
eg GROUP_CONCAT(distinct b.category_name)distinct返回单个值,而不是逗号分隔。我担心这会使GROUP_CONCAT(distinct(b.category_name))的返回值如1 Test4、Test4、Test3、,Test3如果您需要不同的类别名称,那么您需要使用
distinct
eg GROUP_CONCAT(不同的b.category_名称)distinct返回单个值,而不是逗号分隔。我担心这将导致工作组_CONCAT(不同的b.category_名称))