Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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 - Fatal编程技术网

Php 获取查询结果时,将分组按

Php 获取查询结果时,将分组按,php,mysql,Php,Mysql,我想从一个查询中得到一些结果。该表存储用户访问网站中哪个页面的信息。因此,我可以让一行中的用户访问每个示例的a页,第二行中的用户与访问B页的用户相同。我希望执行一个查询,选择访问a页和B页的一个或多个用户。我不能在where条件中使用“and”,因为只有一列 这是桌子的结构 ID | user_id | page | views 1 1 A 44 2 1 B 120 3 2 A 140

我想从一个查询中得到一些结果。该表存储用户访问网站中哪个页面的信息。因此,我可以让一行中的用户访问每个示例的a页,第二行中的用户与访问B页的用户相同。我希望执行一个查询,选择访问a页和B页的一个或多个用户。我不能在where条件中使用“and”,因为只有一列

这是桌子的结构

ID | user_id | page | views
1      1        A        44
2      1        B       120
3      2        A       140
4      3        A        22
我试过这个,但不管用

SELECT users.name,users.id,users.email
                        FROM users
                        JOIN help_messages ON users.id = help_messages.id_user
                        WHERE (PAGE LIKE  '%clubs%' or PAGE like '%profile%') and views >= 1
                        GROUP BY help_messages.id_user, help_messages.page

所以有什么解决办法吗。感谢

解决此问题的一般方法是使用聚合和having子句:

having子句中的第一个条件统计具有“A”的行数,并且只允许具有至少一个此类行的用户\u ID。第二个条件与“B”相同

这是一种通用方法,因为添加其他页面很容易。此外,如果您想要访问“A”而不是“B”的人,您可以使用:

having sum(page = 'A') > 0 and sum(page = 'B') = 0;

我已尝试适应我的数据,并完成了此查询,但未返回任何结果:选择用户。名称、页面、来自用户的视图通过help_messages加入用户上的help_消息。id=help_messages.id_用户组。id_用户、help_消息。页面具有类似于“%homepage%”的页面、视图=1以及类似于“%profile%”的页面和视图=1@KANDROIDOS . . . 看看情况。他们使用总和。修复您的查询,它应该会工作。页面仅类似于“a”或“b”
having sum(page = 'A') > 0 and sum(page = 'B') = 0;