-1

我有 2 个通过多对多关系连接的表,我创建了第三个表,并且我有一个像这样的查询:

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 

如您所见,提供者在同一行中,并且它们按/

4

1 回答 1

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
于 2013-01-14T11:42:23.720 回答