gpt4 book ai didi

mysql - 从已经受限的 MYSQL 查询中获取受限子查询结果

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

我知道问题名称有点令人困惑,但我想做的是(如果可能的话)以下内容:在下面的 MYSQL 查询中,我可以获取前 15 个人的所有电话号码,我需要的是通过此查询,如果此人有超过 3 个电话号码,则仅返回前 3 个。

SELECT distinct(pp.PhoneNumber)
FROM person p
INNER JOIN personPhone pp ON p.personId = pp.personId
WHERE !ISNULL(pp.PhoneNumber)
GROUP BY p.PersonId, pp.PhoneNumber
ORDER BY p.personId ASC LIMIT 0,15;

我尝试在 distinct 语句内的 SELECT 上创建子查询,但没有成功

编辑:抱歉,我忘记添加我正在使用的 MySQL 版本,它是 5.7.24

最佳答案

你没有说你有什么版本的MySQL。如果您有 MySQL 8.x,您可以执行以下操作:

select *
from (
select
personId, PhoneNumber,
row_number() over(partition by personId order by PhoneNumber) as rn
from (
SELECT distinct p.personId, pp.PhoneNumber
FROM person p
INNER JOIN personPhone pp ON p.personId = pp.personId
) x
) y
where rn <= 3

关于mysql - 从已经受限的 MYSQL 查询中获取受限子查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56177815/

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