У меня есть таблица "прейскурант". Я пытаюсь присоединиться к одному столбцу, new_rate, из другой таблицы под названием «rate_cycles», и это должно основываться на определенных условиях. У меня проблемы с созданием такого запроса. Таблица прайс-листа содержит префиксы, вот образцы из обеих таблиц. Я присоединяюсь к 'new_rate' из циклов, если пара страна + регион из прайс-листа совпадает.
Если (в таблице циклов) префикс равен нулю и уведомлен 0, мне нужно присоединиться к «new_rate» из этой строки. Если он уведомлен (уведомлен = 1), мне нужно найти, если он существует, следующую строку, где уведомление равно 0. Если в этой строке префикс равен нулю, то я присоединяюсь к new_rate из этой строки, но если префикс не равен нулю, то для значения new_rate мне нужна последняя строка, где префикс равен нулю, а уведомление равно 1 (если существует, если нет, то нуль).
Как я мог этого добиться? Спасибо.
Таблица цен
+----+--------------+---------+--------------+---------+-----------+----------+-----------+----------+--------+---------------------+----------------+ | id | pricelist_id | country | region | prefix | is_mobile | is_fixed | is_custom | currency | rate | last_updated | has_rate_cycle | +----+--------------+---------+--------------+---------+-----------+----------+-----------+----------+--------+---------------------+----------------+ | 2 | 1 | Albania | Fixed ALBTEL | 3554249 | 0 | 0 | 0 | USD | 0.0000 | 2014-09-23 09:48:00 | 1 | | 3 | 1 | Albania | Fixed ALBTEL | 3554250 | 0 | 0 | 0 | USD | 0.0000 | 2014-09-23 09:48:00 | 1 | | 4 | 1 | Albania | Fixed ALBTEL | 3554251 | 0 | 0 | 0 | USD | 0.0000 | 2014-09-23 09:48:00 | 1 | | 5 | 1 | Albania | Fixed ALBTEL | 3554252 | 0 | 0 | 0 | USD | 0.0000 | 2014-09-23 09:48:00 | 1 | +----+--------------+---------+--------------+---------+-----------+----------+-----------+----------+--------+---------------------+----------------+
Таблица циклов
+----+------------+---------+--------------+----------+---------------------+---------------+---------+----------+---------+ | id | carrier_id | country | region | new_rate | activation_date | update_status | prefix | notified | grouped | +----+------------+---------+--------------+----------+---------------------+---------------+---------+----------+---------+ | 1 | 15 | Albania | Fixed ALBTEL | 1.0000 | 2014-09-30 03:48:00 | NEW | NULL | 0 | 0 | | 2 | 15 | Albania | Fixed ALBTEL | 2.0000 | 2014-10-01 03:48:00 | BLOCKED | 3554250 | 0 | 0 | | 3 | 15 | Albania | Fixed ALBTEL | 3.0000 | 2014-10-02 03:48:00 | DECREASE | NULL | 0 | 0 | | 4 | 15 | Albania | Fixed ALBTEL | 4.0000 | 2014-10-03 03:48:00 | NEW | 3554250 | 0 | 0 | +----+------------+---------+--------------+----------+---------------------+---------------+---------+----------+---------+