gpt4 book ai didi

php - 获取分组依据的查询结果

转载 作者:行者123 更新时间:2023-11-29 23:29:57 25 4
gpt4 key购买 nike

我正在尝试获取一些查询结果。该表存储有关用户访问网站中的哪个页面的信息。因此,我可以在每个示例中连续访问页面“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 子句:

select user_id
from table t
group by user_id
having sum(page = 'A') > 0 and sum(page = 'B') > 0;

having 子句中的第一个条件计算具有 'A' 的行数,并且仅允许具有 at 的 user_id至少有一个这样的行。第二个条件对 'B' 执行相同的操作。

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

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

关于php - 获取分组依据的查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26650409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com