#mysql
#mysql
Вопрос:
предположим, у меня есть 3 таблицы
порядок таблиц
---- -------------
| id | total_price |
---- -------------
| 1 | 50000 |
---- -------------
таблица order_detail
---- ---------- ------------ -----------
| id | order_id | product_id | bundle_id |
---- ---------- ------------ -----------
| 1 | 1 | 20 | 1 |
| 2 | 1 | 21 | 1 |
| 3 | 1 | 22 | 2 |
| 4 | 1 | 23 | 2 |
| 5 | 1 | 24 | NULL |
---- ---------- ------------ -----------
пакет таблиц
---- ---------- --------- -----------------
| id | order_id | type_id | discount_amount |
---- ---------- --------- -----------------
| 1 | 1 | 6 | 23000 |
| 2 | 1 | 6 | 22000 |
| 3 | 1 | 2 | 5000 |
---- ---------- --------- -----------------
с order.id = order_detail.order_id
и order_detail.bundle_id = bundle.id
как мы можем видеть, некоторый product_id имеет тот же bundling_id, поэтому я хочу выполнить эти условия
- ЕСЛИ type_id != 6, ТО 0 для каждого product_id
- ЕСЛИ product_id с type_id != 6 имеет тот же bundle_id, то для каждого product_id с тем же bundle_id просто появляется один discount_amount, а другой заполняется ‘0’
для этих условий я делаю этот запрос
SELECT od.product_id,
IF(b.type_id != 6, 0, (this is query case when to condition 2, which i still searching it how to solve it))
FROM order_discount od JOIN bundle b ON od.bundle_id = b.id
ОЖИДАЕМЫЕ РЕЗУЛЬТАТЫ
------------ -----------------
| product_id | discount_amount |
------------ -----------------
| 20 | 23000 |
| 21 | 0 |
| 22 | 22000 |
| 23 | 0 |
| 24 | 0 |
------------ -----------------
Комментарии:
1. Пожалуйста, добавьте скрипку — я знаю, что вы знаете, как это сделать..
2. Оба product_is 20 и 21 ссылаются на bundle_id 1. Почему скидка применяется к 20, а не к 21? Оба продукта относятся к пакету с типом = 6, и, следовательно, они не соответствуют вашим правилам 1 и 2.
3. является ли 20 или 21 для bundle_id 1, он появится только один раз, а не дважды
4. Оба ваших правила работают с
IF type_id != 6
условием. Все ваши пакеты имеютtype_id = 6
. Так что для них нет правила.5. хорошо, позвольте мне отредактировать таблицу