问题标签 [lateral-join]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
190 浏览

sql - PostgreSQL:使用 LATERAL JOIN 和聚合初始化查询计划时没有分区修剪

我想知道为什么分区修剪不适用于 LATERAL JOIN 和聚合。下面是我在 PostgreSQL 12.1 (Ubuntu 12.1-1.pgdg18.04+1) 上测试的示例:

现在,如果在 LATERAL JOIN 下的 SELECT 中没有聚合,一切都会按预期工作 - 只扫描每个表的单个分区:

但是,当我尝试包含聚合函数的非常相似的查询时,不会从查询计划中删除 demo2 的分区:

当然,demo2_key_2 上的 Seq Scan 从未执行过,但为什么没有从查询计划中删除呢?具有数百个分区的更复杂的查询会受到严重影响。

解决方法是在子查询中添加一个冗余条件:

0 投票
2 回答
5959 浏览

sql - 如何在 Oracle 中使用横向连接?

我正在尝试在 Oracle(Oracle 数据库 11g 版本 11.2.0.1.0 )中使用横向连接,但它给出了一些错误。我已经关注了这个链接

https://oracle-base.com/articles/12c/lateral-inline-views-cross-apply-and-outer-apply-joins-12cr1#lateral-inline-views 并将其应用于相同的数据,但仍然是不工作。有人能弄清楚这个问题吗?

添加更多细节以澄清为什么我需要横向连接:我有一个表,例如

我想添加 ID 小于当前行 ID 的记录长度总和的另一列,即

例如,使用横向连接可能非常简单

那么有没有其他选择呢?

0 投票
1 回答
62 浏览

postgresql - 为什么我的 postgres 横向子查询失败?

我正在尝试使用 postgres 对 LATERAL 子查询的支持运行以下查询:

它失败了, where s 与横向子查询的 where 子句中的引用有关。

我为横向查询尝试了不同的方法,但我总是得到同样的错误。我不知道我错过了什么。

如果我运行 CTE 表达式并从中选择 s.*,我会得到预期的结果,因此该部分工作正常。

我在 CentOS 上运行 Postgres 11.6。

0 投票
1 回答
908 浏览

sql - PostgreSQL 较差的横向连接性能

我有桌子

我坚持对他们进行横向连接查询。它具有极差的性能,一些查询运行数小时取决于数据集大小,同时选择限制。

我尝试为它们使用相关子查询,但它给我带来了我没想到的结果。

提前致谢!

0 投票
1 回答
169 浏览

sql - 将 OUTER APPLY 转换为 Oracle 11g 语句

我有以下 TSQL,

我需要将其转换为 Oracle 11g。我试过横向但不支持。

0 投票
2 回答
209 浏览

sql - 语法:PostgreSQL 与存储过程的横向连接

PostgreSQL 11.1

我的程序定义为:

我可以将它与 cte 一起使用,例如:

加入过程是否有首选语法?

0 投票
1 回答
336 浏览

sql - 使用现有横向连接获取 postgres 中相关行的计数

此查询为我提供了几行以及来自usingtable1的相关记录。我已将 table2 中的行限制为每行 10 行。table2left join lateral

但是我怎样才能包含count(*)table2 中与 table1 ( select count(*) from table2 where table1_id = t1.id) 相关的所有记录的总数。由于我正在进行横向连接,我不确定如何添加这些结果。

我可以重用我已经在做的横向连接,还是我必须做一个单独的横向连接,因为第一个有 alimit 10并且count(*)不需要限制?查询应该是什么样子才能使它像这样工作?(我认为可能有一种方法可以使用第一个横向连接中的数组切片语法来做到这一点,但我认为这会很昂贵,因为它必须获取所有行才能获得它们的计数。)

0 投票
1 回答
1514 浏览

sql - LEFt JOIN LATERAL 显示 SELECT 错误

我正在尝试在以下查询中运行:

上面的查询显示错误:

如果我单独运行子查询,它会给我一个结果,但lateral它会给我一个错误。

0 投票
1 回答
71 浏览

sql - 什么是最好的 SQL 生效日期设计模式

我有,我想象的是标准的 SQL 设计模式。我有两个要加入的表。一个有一个日期,另一个有一个生效日期,我想要第二个表的最后一条记录,其生效日期小于或等于第一个表的日期。

我现在使用的查询类似于:

这工作得很好,我已经这样做了一段时间。但我想知道是否有更有效的方法来做到这一点。我正在尝试提高几个非常复杂的查询的性能。

我正在使用 SQL Server。

0 投票
0 回答
93 浏览

python - sqlalchemy 和 postgres:没有 from 子句的横向表达式

我正在尝试这样做,但是使用 sqlalchemy:

问题是,sqlalchemy 首先自动关联子查询中使用的所有表,然后在 usingcorrelate_except之后引发FROM clause expected异常。

更新:这是一个简化的演示:https ://pastebin.com/XrkW2cMT sa.__version__: 1.3.17

我最好的猜测是使用一些 FROM 模仿,像这样:

这可行,但看起来并不漂亮,而且我担心在一些奇怪的边缘情况下可能出现性能问题。

有没有更好、更清洁的方法?