2016-07-23 39 views
0
create table person { 
    id int, 
    name char(10), 
    primary key(id), 
} 


create table person_child { 
    id int, 
    name char(10), 
    primary key(id), 
    foreign key(id) references person(id)); 
} 

一个人可以有1 ... n个孩子,所以它是一对多的孩子。我的查询是找到他/她有孩子的人数的人的名字? 会有怎样的select语句如何让MYSQL为这种情况选择一对多的查询?

回答

2

使用加入和group by

select person.name, count(*) as num_of_child 
from person 
inner join person_child on person.name = person_child.name 
group by person.name; 
+0

谢谢.i在想同样的关键字,但只是感到困惑:P谢谢 – ekaf

+0

感谢你.. – scaisEdge

+0

请你解释它是如何工作的,它首先或第一组.sorry新玩家 – ekaf

1

选择p.name,从人计数(PC.id)作为p-内连接person_child为p.ID = PC上的PC。 ID组通过p.name 这将做到

+0

对不起,它不起作用 – ekaf

+1

我编辑了答案。有一些错别字,你是否尝试过上面的? – Nvn

+0

你person_child有ID作为主键和外键...这就是问题 – Nvn