【发布时间】:2019-01-22 16:11:25
【问题描述】:
假设我有两个表,帖子和用户,我想要的是选择每个用户的第二个帖子(每个帖子都有它的日期,所以我可以订购)。
我已经阅读了有关偏移量和限制的信息,但它们都没有解决我的问题(至少没有我尝试过的方式)。我确实认为我正在寻找某种组功能,因为它需要在每个组(1 个用户 - N 个帖子)中工作,而不仅仅是在最终输出中。
我正在使用内连接来选择组合数据。
有人可以帮帮我吗?
表格
user_id post_id date post_name
1 1 2018-01-01 post 1
1 2 2018-02-02 post 2
1 3 2018-03-03 post 3
2 4 2018-01-01 post 1
2 5 2018-02-02 post 2
2 6 2018-03-03 post 3
3 7 2018-01-01 post 1
3 8 2018-02-02 post 2
3 9 2018-03-03 post 3
4 10 2018-03-03 post 1
预期结果
user_id post_id date post_name
1 2 2018-02-02 post 2
2 5 2018-02-02 post 2
3 8 2018-02-02 post 2
4 null null null
**当用户没有第二个帖子时,必须设置值“null”。
【问题讨论】:
-
您使用的是什么查询?
-
我正在尝试这样的事情:SELECT u.id "user id", u.name, u.email, p.id "post id", p.date, COUNT(*) FROM sql_test .post p INNER JOIN sql_test.user u ON u.id = p.user_id WHERE u.id = 1 GROUP BY (u.id, u.name, u.email, p.id, p.date) ORDER BY p.日期偏移量 1 行仅获取下 2 行;
标签: sql database postgresql join