SQL Middle EXPLAIN и оптимизация обновлено

Перепиши DISTINCT после JOIN на EXISTS

Условие

Запрос ищет клиентов, которые хоть раз покупали электронику. Он размножает строки соединениями, а потом схлопывает их DISTINCT. Перепиши через EXISTS, чтобы результат был тем же.

Колонки: id, name. Порядок строк не важен.

SELECT DISTINCT c.id, c.name
FROM customers c
JOIN orders o ON o.customer_id = c.id
JOIN order_items oi ON oi.order_id = o.id
JOIN products p ON p.id = oi.product_id
WHERE p.category = 'Электроника';

Как подойти

Подсказки: 1
  1. Нужно знать только факт покупки, а не все покупки.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме