Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择字段名中的一个值出现在多行中的行_Php_Mysql_Sql_Pdo - Fatal编程技术网

Php 选择字段名中的一个值出现在多行中的行

Php 选择字段名中的一个值出现在多行中的行,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,假设我有一个这样的数据库结构 表用户 id name 1 Name1 2 Name2 3 Name3 4 Name4 和另一个表日志 id userid 1 1 2 1 3 2 4 3 5 3 6 3 7 4 8 4 9 4 现在,如果我在文本框中输入3并按submit,那么在服务器端PHP中,我需要从用户表中获取并显示id为3和4的

假设我有一个这样的数据库结构

用户

id    name    
1     Name1   
2     Name2   
3     Name3   
4     Name4   
和另一个表
日志

id    userid
1     1
2     1      
3     2
4     3
5     3
6     3
7     4
8     4
9     4

现在,如果我在文本框中输入3并按submit,那么在服务器端PHP中,我需要从
用户
表中获取并显示id为
3和4的记录,即
用户
表中的Name3和Name4,就像在
日志
表中一样,它们每次出现3次。类似地,如果我按2并提交,它应该从
users
表中获取并显示记录Name1,作为
id
1,该表在logs表中已经出现了2次。这里的查询应该是什么?我不明白如何从这个开始,所以我不能发布我已经尝试过的东西。请提供帮助。

按用户分组,只取具有您输入的记录计数的组

select u.name
from users u
join logs l on l.userid = u.id
group by u.name
having count(l.id) = $inputValue

尝试此查询,它正在工作

select name from users where id in (select userid from logs  group by userid having count(userid) = '".$inputvalue."')

这对您很有用

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

GROUPBY需要位于“l.userid”上,显然,您必须更改选择列表。所以重建查询。不,它不是。@Muhammad Waheed:如果
name
在users表中不是唯一的,那就很奇怪了。如果是这样,那么请求的查询结果将变得毫无意义,因为两个用户的名字相等,我们就不知道它是哪一个。(此外:即使我们按
id
分组,我们仍然可以选择
name
,因为后者在功能上依赖于前者。)@juergend现在明白了吗?Thorsten你就是right@Muhammad瓦希德:嗯。。。实际上,我要说的是支持juergen d的声明,而不是你的。它将计算所有用户ID列而不是分组用户。我最喜欢的答案。您从用户表中选择名称,并在其所属的位置设置条件:在
where
子句中。@SayedMohdAli您后来编辑了它,并在子查询中添加了group by。。。现在很明显,它会像我想要的那样完美。非常感谢。