Выберите объекты, имеющие все типы другого объекта

#sql #oracle #having

Вопрос:

У меня есть упражнение по SQL для агентства по прокату автомобилей.

У транспортного средства есть категория и агентство. Мне нужно найти список агентств, имеющих все категории транспортных средств.

Я сделал этот запрос, но мой референт сказал мне, что он вообще не оптимизирован и что он может быть проще.

 SELECT A.CODE_AG
FROM VEHICULE V
INNER JOIN AGENCE A on A.CODE_AG = V.CODE_AG
HAVING COUNT(DISTINCT CODE_CATEG) = (SELECT COUNT(1) FROM CATEGORIE)
GROUP BY A.CODE_AG;
 

У тебя есть идея ?

Спасибо.

Комментарии:

1. Вы используете Oracle или MySQL? Не добавляйте теги для баз данных, которые вы не используете.

2. Я не вижу в этом никаких очевидных проблем.

3. извините, я бы не стал добавлять mysql

4. Вам не нужна AGENCE таблица, как CODE_AG это доступно в VEHICULE . Но чтобы ответить на вопрос, ваш референт должен рассказать, в чем проблема с текущим кодом.