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_名称))