fix mistakes in joins
This commit is contained in:
+9
-7
@@ -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';
|
||||||
|
|
||||||
/**❓ Ответь на вопросы:**
|
/**❓ Ответь на вопросы:**
|
||||||
|
|||||||
Reference in New Issue
Block a user