SQL 的 EXISTS 函数 select 是否重复? (甲骨文 SQL)

Does SQL's EXISTS function select duplicates? (Oracle SQL)

t1拥有给定ORACLE数据库中每个人的所有学分。每个人都由 ID 标识。 t2 包含我需要 select 来自 t1 的人。

为此,我尝试了以下方法:

select
    ID,
    capital,
    balance
from
    t1
where
    exists (
        select ID
        from t2
        where t1.ID = t2.ID);

我的问题是 t2 有重复的 ID。因此,例如,如果 ID = 2 有 3 个学分并且她在 t2 中重复了 4 次,那么上面的查询 select 她的每个学分是否会重复 4 次?也就是说,ID = 2 我会得到 3 x 4 学分吗?

通常,我会从结果中计算重复的学分,但我目前没有 selected 学分的唯一标识符。这就是我在这里问这个而不是尝试从查询结果中按计数分组的原因。

没有。您只编写了来自 t1 的 returns 行的查询。您不能使用 where 子句来乘以行(好吧,几乎从不,也不在 Oracle 中)。

使用 existsin 的一个原因是您不必担心重复,就像 join.[=16 需要担心的那样=]

否 - 将 exists 视为 True/False 函数。正确:returns >0 行;错误:returns 0 行。所以有没有重复也没关系