Это немного длинно для комментария.
В SQL есть различные типы подзапросов. Критическое различие основано на количестве строк:
- Подзапрос, который возвращает более одной строки (и часто более одного столбца), является производной таблицей .
- Некоторые подзапросы являются специальными. Они возвращают максимум одну строку и обычно один столбец. Это скалярные подзапросы .
Скалярный подзапрос может использоваться там, где будет использоваться константное выражение. Например, вы можете использовать константу для =
или select
. Однако вы не можете использовать набор в этих местах.
Ваш запрос сбивает с толку эти типы подзапросов. Вы не указали, что хотите сделать, но весь запрос необходимо переписать, предположительно используя JOIN
.