Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 30 из 52 · 7 мин
Есть ли хоть одна строка, и сравнение со всеми значениями сразу.
Есть позиции, которые не заказали ни разу? Хочу их убрать.
Для каждого товара проверю: существует ли позиция заказа с ним. NOT EXISTS — нет ни одной.
Осторожно с NOT IN (подзапрос): если в подзапросе окажется NULL, он вернёт пустоту. NOT EXISTS такой ловушки не имеет.
EXISTS · NOT EXISTSEXISTS (подзапрос) истинно, если подзапрос вернул хотя бы одну строку. Сами значения не важны, поэтому пишут SELECT 1.SELECT name
FROM products p
WHERE NOT EXISTS (
SELECT 1 FROM order_items oi WHERE oi.product_id = p.id
);ANY · ALLx > ALL (подзапрос) — больше каждого значения. x = ANY (подзапрос) — равно хоть одному (как IN).SELECT name, price
FROM products
WHERE price > ALL (SELECT price FROM products WHERE category_id = 1);«Нет ни одного» — пиши NOT EXISTS. Это надёжнее NOT IN, когда в данных бывают NULL.
Выведи name товаров, которые ни разу не встречались в order_items. Используй NOT EXISTS.
NOT EXISTS — пока нетcategories — категории товаровid, nameproducts — товарыid, name, category_id, price, weight_g, is_available, added_oncustomers — покупателиid, name, email, city, phone, birthday, registered_onstaff — сотрудникиid, name, role, salary, hired_on, manager_idorders — заказыid, customer_id, staff_id, created_at, statusorder_items — позиции заказовorder_id, product_id, quantity, unit_pricereviews — отзывыid, customer_id, product_id, rating, comment, created_onВыберите один ответ.
Что проверяет EXISTS?
Выберите один ответ.
price > ALL (SELECT price FROM … WHERE category_id = 1) — это…
Проверяем состояние обучения…