fix mistakes in joins

This commit is contained in:
Dmitry Medvedev
2026-06-08 23:51:43 +05:00
parent c7c9bcb71a
commit 72c9b065b9
+9 -7
View File
@@ -95,11 +95,11 @@ LEFT JOIN orders o ON o.user_id = u.id;
--✅ Задача: найти пользователей, у которых нет ни одного заказа. --✅ Задача: найти пользователей, у которых нет ни одного заказа.
SELECT SELECT
o.user_id AS user_id, u.id AS user_id,
u.name AS user_name u.name AS user_name
FROM users u FROM users u
LEFT JOIN orders o ON o.user_id = u.id LEFT JOIN orders o ON o.user_id = u.id
WHERE user_id IS NULL; WHERE o.user_id IS NULL;
/* **❓ Ответь на вопросы:** /* **❓ Ответь на вопросы:**
Почему тут важно фильтровать именно по колонке из **`orders`**, а не из **`users`**? Почему тут важно фильтровать именно по колонке из **`orders`**, а не из **`users`**?
@@ -139,8 +139,8 @@ SELECT
oi.order_id AS order_id, oi.order_id AS order_id,
oi.quantity AS quantity oi.quantity AS quantity
FROM products p FROM products p
FULL JOIN order_items oi ON p.id = oi.product_id LEFT JOIN order_items oi ON p.id = oi.product_id
ORDER BY p.name ORDER BY p.name;
/*❓ Ответь на вопросы: /*❓ Ответь на вопросы:
что будет в order_id, если товар ни разу не покупали? что будет в order_id, если товар ни разу не покупали?
@@ -151,6 +151,8 @@ ORDER BY p.name
те заказы, которые не покупали */ те заказы, которые не покупали */
--task 8 --task 8
--Задание 8: Только оплаченные заказы + их состав
SELECT SELECT
oi.order_id AS order_id, oi.order_id AS order_id,
u.name AS user_name, u.name AS user_name,
@@ -158,9 +160,9 @@ SELECT
oi.quantity AS quantity, oi.quantity AS quantity,
oi.price_at_purchase AS price_at_purchase oi.price_at_purchase AS price_at_purchase
FROM order_items oi FROM order_items oi
FULL JOIN orders o ON o.id = oi.order_id JOIN orders o ON o.id = oi.order_id
FULL JOIN products p ON p.id = oi.product_id JOIN products p ON p.id = oi.product_id
FULL JOIN users u ON u.id = o.user_id JOIN users u ON u.id = o.user_id
WHERE o.status = 'paid'; WHERE o.status = 'paid';
/**❓ Ответь на вопросы:** /**❓ Ответь на вопросы:**