MySQL多对多关系计数查询
我有三张桌子MySQL多对多关系计数查询,mysql,Mysql,我有三张桌子 |TYPE | |REL_TABLE | |PRODUCT | |----------| |-----------| |-----------| |Id | |Id | |Id | |Title | |TypeId | |Name | |CategoryID| |ProductId | 如您所见,关系为TYPE.id->REL_TABLE.TypeID和PRO
|TYPE | |REL_TABLE | |PRODUCT |
|----------| |-----------| |-----------|
|Id | |Id | |Id |
|Title | |TypeId | |Name |
|CategoryID| |ProductId |
如您所见,关系为TYPE.id->REL_TABLE.TypeID和PRODUCT.id->REL_TABLE.ProductId
我需要的是CategoryID和产品数量。每个CategoryID的名称只需加入
和计数
结果:
SELECT t.CategoryID,
COUNT(*)
FROM TYPE as t
LEFT JOIN REL_TABLE as r on t.Id = r.TypeId
JOIN PRODUCT as p on p.id = r.ProductId
GROUP BY t.CategoryID
简单的join and count
将与groupby
select t.categoryid, count(p.name)
from type t inner join rel_table rt on
t.id=rt.typeid inner join product p on
rt.productid=p.id
group by t.categoryid