首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL - LIMITing和同时过滤连接

SQL - LIMITing和同时过滤连接
EN

Stack Overflow用户
提问于 2018-09-19 14:57:22
回答 1查看 184关注 0票数 3

我需要一个解决以下问题的方法。我有两张桌子:

代码语言:javascript
复制
ids from new user (got by subquery)

+------------+
|  user_id   |
+------------+
| 1          | 
| 4          | 
| 5          |
+------------+

users (table with all users)
+------------+
|  user_id   |
+------------+
| 1          | 
| 2          | 
| 3          |
| 4          |
| 5          |
| ...        |
+------------+

我要加入这两张桌子。每个新用户都需要与其他用户的3条连接。

例如:

代码语言:javascript
复制
+----------+------+
| new_user | user |
+----------+------+
| 1        | 2    |
| 1        | 3    |
| 1        | 4    |
| 4        | 1    |
| 4        | 2    |
| 4        | 3    |
| 5        | 1    |
| 5        | 2    |
| 5        | 3    |
+----------+------+

问题是要将条目限制为,确切地说是3,并排除冗余条目(如1、3、3、.)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-19 15:10:38

在PostgreSQL中,可以使用lateral查询检索子查询中数量有限的行。

我不知道主查询或子查询的确切结构,但应该如下所示:

代码语言:javascript
复制
select t.*, ls.*
  from main_table t,
  lateral ( -- lateral subquery
    select * from secondary_table s
      where s.col1 = t.col2 -- filtering condition, if needed
      fetch first 3 rows only -- limit to a max of 3 rows
  ) ls;

main_table中的每一行执行一次横向子查询。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52408787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档