скрипт подзапроса SQL / MYSQL - PullRequest
       2

скрипт подзапроса SQL / MYSQL

0 голосов
/ 28 ноября 2018

Привет! Я выполняю академическое задание и получаю код ошибки 1111 Неправильное использование групповой функции.Может ли кто-нибудь объяснить / показать мне, как исправить эту ошибку?

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

SELECT vt_clients.cl_id , vt_clients.cl_name_last 
FROM vt_clients 
WHERE vt_clients.cl_id NOT IN(SELECT an.cl_id 
FROM vt_animals an WHERE an_type IN('snake', 'lizard', 'turtle') AND COUNT(an_type) > 1);

таблица таблиц

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Я бы просто использовал exists:

SELECT c.cl_id , c.cl_name_last 
FROM vt_clients c 
WHERE EXISTS (SELECT 1
              FROM vt_animals a
              WHERE c.cl_id = c.cl_id AND
                    a.an_type NOT IN ('snake', 'lizard', 'turtle')
            );

Вам просто нужно существование одного не рептильного животного, поэтому нет необходимости в count().

0 голосов
/ 28 ноября 2018

Вы можете попробовать ниже

SELECT vt_clients.cl_id , vt_clients.cl_name_last 
FROM vt_clients 
WHERE not exists
(SELECT 1  
FROM vt_animals an WHERE an.cl_id=vt_clients.cl_id and an_type IN('snake', 'lizard', 'turtle') 
having COUNT(an_type) >= 1
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...