Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Подскажите, почему не работает exists  [new]
Moneta13
Member

Откуда:
Сообщений: 25
Подскажите пожалуйста логику обработки запроса с подзапросом и exists

SELECT a.first_name, a.last_name
FROM actor a
WHERE EXISTS (
SELECT fa.actor_id,
EXTRACT (YEAR FROM CURRENT_DATE) - MAX(f.release_year) AS count_of_years
FROM film_actor fa
INNER JOIN film f ON fa.film_id = f.film_id
WHERE fa.actor_id = a.actor_id
GROUP BY fa.actor_id
ORDER BY count_of_years DESC
LIMIT 3)

Вместо трех мих значений в подзапросе, он выдает мне все значения
8 апр 21, 02:07    [22305757]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите, почему не работает exists  [new]
vyegorov
Member

Откуда: Баньоло-ин-Пьяно
Сообщений: 1231
Moneta13,

EXISTS возвращает true, если подзапрос возвращает хотя бы одну запись.
Очевидно, что LIMIT 3 тут смысла не имеет.
8 апр 21, 02:09    [22305758]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите, почему не работает exists  [new]
Moneta13
Member

Откуда:
Сообщений: 25
vyegorov, а насколько коректно будет еще подзапросом вытащить чисто айдишки и вместо exists использовать in? Или такой вариант очень некоректно смотрится?
8 апр 21, 02:12    [22305759]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите, почему не работает exists  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4675
Moneta13
vyegorov, а насколько коректно будет еще подзапросом вытащить чисто айдишки и вместо exists использовать in? Или такой вариант очень некоректно смотрится?


Вы задачу то опишите... для начала.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
8 апр 21, 09:50    [22305813]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите, почему не работает exists  [new]
yob
Member

Откуда:
Сообщений: 39
Moneta13
vyegorov, а насколько коректно будет еще подзапросом вытащить чисто айдишки и вместо exists использовать in? Или такой вариант очень некоректно смотрится?

in обойдет все записи, даже если у вас там 2/3 null значение
8 апр 21, 10:27    [22305842]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите, почему не работает exists  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3662
О, это видимо новенькому в Яндексе сказали "кинопоиск" починить.... а то плохо поиск актеров работает
8 апр 21, 10:37    [22305845]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить