Php 如何修复此sql以仅显示最后一行,而不显示满足条件查询的所有行?
我使用以下sql来显示最近5分钟浏览网站的活动用户。然后,这些行与浏览的页面一起显示。但是,如果用户(散列)在5分钟内浏览多个页面,则会显示所有页面 我只想显示每个用户的最后一页。我该怎么做? 限制1无效,因为我想为所有活动用户显示最后一页。不仅仅是一个用户Php 如何修复此sql以仅显示最后一行,而不显示满足条件查询的所有行?,php,mysql,sql,Php,Mysql,Sql,我使用以下sql来显示最近5分钟浏览网站的活动用户。然后,这些行与浏览的页面一起显示。但是,如果用户(散列)在5分钟内浏览多个页面,则会显示所有页面 我只想显示每个用户的最后一页。我该怎么做? 限制1无效,因为我想为所有活动用户显示最后一页。不仅仅是一个用户 SELECT behaviour.hash, behaviour.page FROM active inner join behaviour ON active.hash
SELECT behaviour.hash,
behaviour.page
FROM active
inner join behaviour
ON active.hash = behaviour.hash
WHERE active.last_active >= Now() - interval 10 second
AND behaviour.timestamp >= Now() - interval 5 minute
ORDER BY behaviour.timestamp DESC
我认为这将对你正在做的事情起作用:
SELECT b.hash, b.page
FROM active a join
behaviour b
ON a.hash = b.hash join
(select b2.hash, max(timestamp) as maxts
from behavior b2
where timestamp >= Now() - interval 5 minute
group by b2.hash
) bh
ON bh.hash = b.hash and bh.maxts = b.timestamp
WHERE a.last_active >= Now() - interval 10 second
ORDER BY b.timestamp DESC ;
它获取子查询中的最大时间戳并将其加入。
按行为排序。时间戳限制1
仅显示第一条记录(实际查询的最后一条记录)@fantagirocco LIMIT 1如果只有一个用户就可以了。但问题是,它必须显示每个用户的最后一页。MAX(behavior.timestamp)
<代码>按用户分组\u列?用户的引用在SQL中丢失,问题是“活动用户”,但查询显示“哈希”和“页面”。请澄清问题。@Fantagirocco您能告诉我在哪里添加它吗?“字段列表”中的未知列“b2.hash”