2013-01-14 18 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 
相關問題