每个父级的mysql计数chid类型
我有这样一个父表:每个父级的mysql计数chid类型,mysql,Mysql,我有这样一个父表: id | name ------------- 1 | item a 2 | item b 并且有一个chid表,其中一列有2种可能的类型 parent id | name | type ------------------------------- 1 | subitem a | t1 1 | subitem b | t1 2 | subitem c | t2 2 | subitem d
id | name
-------------
1 | item a
2 | item b
并且有一个chid表,其中一列有2种可能的类型
parent id | name | type
-------------------------------
1 | subitem a | t1
1 | subitem b | t1
2 | subitem c | t2
2 | subitem d | t1
2 | subitem e | t2
有一种方法可以使用以下结果进行选择
parent id | childs type t1 | childs type t2
-----------------------------------------------
1 | 2 | 0
2 | 1 | 2
有什么想法吗?
谢谢
包括没有孩子的父母
SELECT p.id as parent_id,
COUNT( case when c.type = 't1' then 1 end) as `childs type t1` ,
COUNT( case when c.type = 't2' then 1 end) as `childs type t2`
FROM parent p
LEFT JOIN child c
on p.id = c.parent_id
GROUP BY p.id
也许你的答案是:
SELECT p.id as parent_id,
COUNT( case when c.type = 't1' then 1 end) as `childs type t1` ,
COUNT( case when c.type = 't2' then 1 end) as `childs type t2`
FROM parent p
LEFT JOIN child c
on p.id = c.parent_id
GROUP BY p.id