0

我是查询优化的新手,如何在实现去相关的同时使用半连接我无法完全理解。

考虑查询

        SELECT A, B
        FROM r
        WHERE r.B < SOME (
            SELECT B
            FROM s
            WHERE s.A = r.A
       )

展示如何使用半连接操作的多集版本对上述查询进行去相关

4

1 回答 1

0

您可以使用内部联接编写查询,如下所示:

SELECT DISTINCT r.A, r.B
FROM r
INNER JOIN s
    ON r.A = s.A
WHERE r.B < s.B;

在此版本的查询中,该DISTINCT子句是必需的,因为表中的给定记录r可能会连接到表中的多个匹配项s。在您的原始版本中,不能有重复项,因为SOME采用一组记录的子句 any 总是返回一个是/否答案。

于 2019-04-22T13:37:59.120 回答