假设我有一个这样的数据库结构。
表users
id name
1 Name1
2 Name2
3 Name3
4 Name4
还有另一个表logs
id userid
1 1
2 1
3 2
4 3
5 3
6 3
7 4
8 4
9 4
现在,如果我在文本框中输入3并按Submit,那么在服务器端PHP中,我需要从users
表中提取记录,并显示id
3和4,即{中的Name3和Name4与users
表中的{1}}表一样,它们分别出现3次。同样,如果我按2并提交,则应该提取并显示记录Name1,因为logs
表中的id
1已在日志表中出现2次。这里的查询应该是什么?我不知道如何开始,因此无法发布尝试过的内容。请帮忙。
答案 0 :(得分:2)
尝试此查询,它可以正常工作
select name from users where id in (select userid from logs group by userid having count(userid) = '".$inputvalue."')
答案 1 :(得分:0)
按用户分组,并且仅接受具有您输入的记录计数的那些分组
select u.name
from users u
join logs l on l.userid = u.id
group by u.name
having count(l.id) = $inputValue
答案 2 :(得分:0)
这将为您工作。
Select u.name
from ( select userid,count(*) as NoOfRecords
from logs
group by userid
having count(*) = $inputvalue ) as a
inner join users u on a.userid = u.id