Запрос с 4-х уровневой выборкой

286
12 января 2017, 05:08

Есть 4 таблицы связанные между собой по id иерархически юзеры->телефоны->сайты->налог и есть входящий массив данных в котором присутствует столбец вида site.rusite2.rusite3.ru1234568967654456876 У каждого пользователя есть также столбец с денежным счетом. Как составить запрос что бы перебирало входящий массив и при совпадении данных со столбца с привязанными данными к каждому юзеру (номер телефона или сайт) снимало с его счета налог забитый в таблице налогов (налог привязан только к сайту). Никак не придумаю такой перебор с одновременным сравнением и обновлением данных по счету. Если есть уточняющие вопросы спрашивайте может дал неполную картину. Вот что вышло в результате:

$query2 = mysql_query("SELECT id FROM users WHERE id NOT IN (1,2)");
while ($sub_money2 = mysql_fetch_array($query2)) {
    $query3 = mysql_query("SELECT users.id, users.money, phones.phone, site.url, rates.taxes FROM users LEFT JOIN phones ON users.id = phones.user_id LEFT JOIN site ON phones.id = site.phones_id LEFT JOIN rates ON site.id = rates.site_id WHERE users.id = {$sub_money2['id']}");
    while ($sub_money3 = mysql_fetch_array($query3)) {
        $sub3_result[] = $sub_money3;
        foreach ($sub1_emailFrom as $sub1) {
            foreach ($sub3_result as $sub3) {
                if (($sub3['phone'] == $sub1) || ($sub3['url'] == $sub1)) {
                    $query4 = mysql_query("UPDATE users SET money = ({$sub3['money']} - {$sub3['taxes']}) WHERE users.id = {$sub3['id']}");
                    echo "Обновление у юзера:" . $sub3['id'] . " баланс равен:" . $sub3['money'] . "<br/>";
                }
            }
        }
    }
}

Остался только вопрос как сделать так что бы после каждой успешного ифа (тобишь когда средства снялись со чета баланс обновлялся и в дальшейшем средства снимались с нового баланса сейчас же идет снятие каждый раз с начальной суммы)

READ ALSO
Парсер курсов валют в базу

Парсер курсов валют в базу

Ситуация такая - вот код парсера:

348
SELECT с блокировкой FOR UPDATE

SELECT с блокировкой FOR UPDATE

Имеется запрос такого вида:

295
Entity Framework и большая база данных Mysql

Entity Framework и большая база данных Mysql

Делаю приложение, которое работает server side и показывает таблицу со 120000 книгами

421
Сортировка коллекции. Интерфейс Comparator

Сортировка коллекции. Интерфейс Comparator

Возникла необходимость избавиться от второго метода сравнения compareоднако после его удаления программа не компилируетсяПодскажите в чем...

265