SQL子查询> 1的含义

时间:2019-03-20 21:43:22

标签: sql ingres

我一直在查看一些旧的Ingress SQL代码,并且对子查询末尾的“> 1”(例如:

)有点好奇
SELECT count(*)
FROM table1 t
WHERE t.col1 = 'TEST' 
AND t.col2 = 'TEST123' 
AND
(SELECT count(*)
FROM table2 ta
JOIN table3 tb ON tb.id = ta.id
WHERE t.col1 = ta.col1
AND tb.col3 IS NULL) > 1 ;

我对大于1的函数感到困惑-这是否仅意味着如果子查询的返回值大于1则将其包括在AND语句中?还是我完全错了?用Google搜索,但找不到Ingress的很多结果!

干杯!

1 个答案:

答案 0 :(得分:1)

您是正确的。这是一个标量子查询。这样的子查询返回一列,最多返回一行。该值在查询中被视为标量值。

在这种情况下,它是对匹配行进行计数的聚合查询。因此,此逻辑至少需要两个匹配项。