-1

多対多の関係で結合された 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 

ご覧のとおり、プロバイダーは同じ行にあり、分割されています/

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 に答える