我有2个表通过多对多关系连接,我创建第3个表,我有一个像这样的查询:
SELECT product.product_name, provider.provider_name
FROM product, provider, provider_product
WHERE product.id_product = provider_product.ref_product
AND provider.id_provider = provider_product.ref_provider
我需要按product_name对结果进行分组,结果必须在同一行中,如下所示:如果产品有很多提供者: 我的结果将是:
product.product_name | provider.provider_name
this is my first product 1 | this is provider1 / this is provider2 / this is provider3
如您所见,提供商位于同一行,他们按/
分割
答案 0 :(得分:1)
使用GROUP_CONCAT()功能。
SELECT product.product_name, GROUP_CONCAT(provider.provider_name SEPARATOR '/')
FROM product, provider, provider_product
WHERE product.id_product = provider_product.ref_product
AND provider.id_provider = provider_product.ref_provider
GROUP BY product.product_name