SQLite:结果集上的内部联接

问题描述 投票:0回答:1

在SQLite中,是否可以对结果集进行某些表的内部联接?

类似这样的假设查询

SELECT el1,el2 FROM pairs
INNER JOIN (<some_query> AS result) ON el1 IN result AND el2 IN result;

冗余工作查询应为:

SELECT el1,el2 FROM pairs
WHERE el1 IN (<some_query>) AND el2 IN (<same_query>);

<some_query>在哪里:

SELECT el FROM set1 INNER JOIN set2 ON set1.el=set2.el;

显然,后者看起来可能非常昂贵。

首选查询是什么?

sqlite set inner-join resultset exists
1个回答
0
投票

some_query的逻辑可以通过INTERSECT来更有效地编写:

INTERSECT

并且如果您将SELECT el FROM set1 INTERSECT SELECT el FROM set2 用作CTE,则可以根据需要执行此操作:

CTE
© www.soinside.com 2019 - 2024. All rights reserved.