BonBonSlick
@BonBonSlick
Vanilla Web Architect

Оптимизация SQL запроса customer never bought?

Использованный материал
Первый
Второй
Третий

+ офф доки

Тут полюбому с подзапросами мне интересно как будут работать NOT EXISTS, COUNT + DISTINCT, IS NULL при данной структуре

FROM User U
         INNER JOIN `Order` O on O.customer_id = U.id
         INNER JOIN OrderItem OI on O.id = OI.order_id
         INNER JOIN Product P on OI.product_id = P.id
         INNER JOIN Store S on P.store_id = S.id


Вот текущий рабочий вариант без учета приведенных в ресурсах свыше. Оптимизация именно его.
SELECT U.name, U.id as customer_id
FROM User U
WHERE U.id NOT IN (SELECT O.customer_id
                          FROM Product P
                                   JOIN OrderItem I on P.id = I.product_id
                                   JOIN `Order` O on I.order_id = O.id
                          WHERE P.store_id = 5)


MariaDB РСУБД на кторой тестировал запрос.

Original dump
SQLFiddle
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
BojackHorseman
@BojackHorseman
...в творческом отпуске...
быстрее всего будет not exists и в подзапросе связывание по внешним ключам
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы