根据元组选择SQL记录

时间:2016-11-11 08:56:22

标签: sql

我打算根据三个字段的元组选择PH表中与RU表中的记录匹配的所有记录:(f1, f2, f3)

我不仅希望包含f1的记录和包含f2的记录以及包含f3但记录中包含所有这三个字段的记录。

我该怎么办?加入?

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

对这三列使用IN条件。

以下是标准ANSI SQL:

select *
from ph
where (f1, f2, f3) in (select r.f1, r.f2, r.f3
                       from ruh r)

答案 1 :(得分:0)

我不确定你在这里想要实现什么,因为你的问题缺乏细节。但是根据我的收集,您可能需要使用set operator INTERSECT。例如:

SELECT f1, f2, f3 FROM PH
INTERSECT
SELECT f1, f2, f3 FROM RU;

答案 2 :(得分:0)

您可以使用相关子查询来检查RU中的匹配项:

SELECT
    *
FROM
    PH
WHERE
    EXISTS(
        SELECT
            1
        FROM
            RU
        WHERE
            RU.f1=PH.f1 AND
            RU.f2=PH.f2 AND
            RU.f3=PH.f3
    );