Подзапрос SQL> 1 означает - PullRequest
1 голос
/ 21 марта 2019

Я просматривал какой-то старый код 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 - означает ли это только включение в оператор AND, если возвращаемое значение подзапроса больше единицы?Или я совершенно не прав?Погуглил, но не нашел много результатов для Ingress!

Cheers!

1 Ответ

1 голос
/ 21 марта 2019

Вы правы. Это скалярный подзапрос . Такой подзапрос возвращает один столбец и не более одной строки. Значение рассматривается как скалярное значение в запросе.

В данном случае это запрос агрегации, в котором учитываются совпадающие строки. Итак, эта логика требует как минимум двух совпадений.

...