2013-01-14 16 views
-1

我有2个表通过多对多关系连接,我创建了第3个表,并且我有这样一个查询:
如何将结果分组在同一行中:通过使用MySQL进行多对多关系

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 

由于你看,供应商是在同一行,而他们正在拆分/

回答

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 
相关问题