gpt4 book ai didi

SQL 查询 : how to get users and their three latest posts?

转载 作者:行者123 更新时间:2023-12-02 08:32:52 26 4
gpt4 key购买 nike

假设我有一个包含两个表的简单架构,userspostsposts 表有一个指向 users 的外键,指示帖子的作者。

此外,假设我想列出用户及其 3 个最新帖子。我可以在 O(n) 次查询中执行此操作(1 次用于列出用户,1 次用于每个获得帖子的用户),但我如何在 O(1) 次查询中执行此操作?

要么一次获取用户和帖子的一个查询,要么 2 个查询,一个获取用户,一个获取帖子。假设我会删除任何重复的用户数据。

最佳答案

您没有说明您的 DBMS,所以这是 ANSI SQL(广泛的 DBMS 支持):

select *
from (
select u.username,
p.title,
row_number() over (partition by u.id order by p.post_time desc) as rn
from users u
join posts p on u.id = p.user_id
) t
where rn <= 3
order by u.username;

关于SQL 查询 : how to get users and their three latest posts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24972977/

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