Использованный материал
Первый
Второй
Третий
+ офф доки
Тут полюбому с подзапросами мне интересно как будут работать 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