gpt4 book ai didi

php - 使用 mysql : variables/subqueries? 进行高级查询

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

我想在收件箱中获取最新的 5 条消息。要获得 5 个最新的 ID,我需要使用这个:

SELECT
MAX(id)
FROM
samtaler
WHERE
brukerid_mottaker = 1
GROUP BY brukerid_avsender
ORDER BY id DESC
LIMIT 5

这会返回我需要的正确 ID。但是在同一个查询中,我想从同一个表中选择数据,即获得从上面的查询返回的 id 的行。

我已经尝试了一些东西,变量和自连接但没有成功:

select 
p2.title,
p2.message,
@a:=max(p1.id)
from
samtaler p1
join samtaler p2
on (@a = p2.id)
where
p2.brukerid_mottaker = 1
group by p2.brukerid_avsender
order by p2.id DESC
limit 5

为什么这行不通?

这是数据库中的当前数据:在这种情况下,我想返回第 13 行和第 4 行。抱歉英语不好。

最佳答案

针对子查询加入,而不是普通的自加入。 IN() 子句将不起作用,因为 LIMIT 不能在 IN() 中使用。它应该在连接的子查询中工作:

SELECT
p1.title,
p1.message,
p2.id
FROM
samtaler p1
JOIN (
SELECT MAX(id) AS id
FROM
samtaler
WHERE
brukerid_mottaker = 1
GROUP BY brukerid_avsender
ORDER BY id DESC
LIMIT 5
) p2 ON p1.id = p2.id

通过这种方法,不需要变量。

关于php - 使用 mysql : variables/subqueries? 进行高级查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161913/

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