2014-02-05 61 views
1

选择我有两个表,这样的:通过频率

users(id, name) 
phones(user_id, number) 

我想选择是在表中的手机超过三排所有用户的名字。我怎样才能做到这一点?

+0

这是一个非常基本的聚集查询。你有尝试过什么吗?如果是这样,请编辑问题并加入。另外,用您正在使用的数据库标记问题。 –

+0

当然,我会添加它 – ahmm95

+0

而且,为了澄清,用户名*不在'phones'表中。大概你的意思是没有'user_id'出现三次以上或'name'上有唯一的索引,所以知道'users'表中没有重复。 –

回答

1

加入表并添加一个having子句限制由user_ids的计数返回的结果

select name, 
count(user_id) 
from users u 
join phones p 
on u.id = p.user_id 
group by name 
having count(user_id) > 3 

SQL小提琴:http://sqlfiddle.com/#!2/c5516/2

1

从用户 选择名加入手机的ID = user_ID的 组通过user_id说明 有计数(数量)> 3