-2

私は2つのテーブルproductsassets. それらはテーブルによって結合されますassets_products

と の両方からのすべての行を含むテーブルを返す必要がありますが、の両方productsassets関連付けられている行の数も表示しますassets_products

すべての製品にアセットがあるわけではなく、その逆もあり、ゼロ カウントでこれを示す必要があります。

例えば:

product   asset    count
 foo        x        1
 bar        x        0
 foo        y        2
 bar        y        1
4

2 に答える 2

1
select products.product,
       assets.asset,
       COUNT(assets_products.id) as count
from assets
cross join products
left join assets_products
    on (assets_products.asset_id = assets.id and
        assets_products.product_id = products.id)
group by products.product, assets.asset
于 2013-02-25T17:11:44.390 に答える
0
select p.product,a.asset,count(*)
from product p
full outer join product_asset pa 
on pa.product_id=p.product_id
full outer join asset a
on a.asset_id=pa.asset_id
group by p.product_id,a.asset_id
于 2013-02-25T17:08:41.443 に答える