[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужна помощь в сравнении результатов запроса
art1804
Доброго времени!

Есть list_table из запроса к которой получаю массив
Запрос select * from list_table

Array ( [0] => Array ( [list] => 1 [sub] => 47 [met] => 19 [com] => 43 [isо] => 0 [del] => 0 )
Array ( [1] =>Array ( [list] => 20 [sub] =>42 [met] => 19 [com] => 43 [isо] => 0 [del] => 0 )
...

Из той же таблицы другим запросом с использованием distinct list получаю массив

Array ( [0] => Array ( [list] => 1 ) [1] => Array ( [list] => 20 ) [2] => Array ( [list] => 23 )...

primary key в этой таблице нет.

Данные записываются в эту таблицу опираясь на list и met. В каждом list есть met и в каждом met есть sub, но кол-во sub везде разное. Количество активных sub берется из независимой Таблицы2. Её не разбираю - там все хорошо. Далее идет сравнение кол-ва sub в Т1 и Т2 и если ==, то list считается синхронизирован и идут другие проверки, а если Т1 < Т2, то выводится должен выводится максимальный список sub этого met. Далее сохраняем(получается синхронизируем).

Мне нужно получить результат такой:
Подсчитать кол-во sub в met = 19 и выбранному list(решено), а также во всех list и вывести максимальное sub из этих же met. Вот как раз этого я и не могу никак реализовать... не получается.

Цель сего деяния такова: если в произвольном list сохранено большее количество sub, то в остальных list появляется кнопка Обновить list, чтобы во всех list было максимальное кол-во sub в этом met. Синхронизировать.

Что делалось: брал текущий list и list=1(базовый) и сравнивал кол-во sub. Делалось это в foreach. Получается так: если добавляется извне еще один sub в этот met и сохраняется базовый list, то все работает как надо, а если сохраняется первым не базовый, то не работает как надо, т.к. базовый всем доволен(сравнивается сам с собой) и нет возможности обновиться другим list, если изначально текущий и базовый list ранее были синхронизированы...

Как-то так... Нужна любая помощь в составлении вложенных циклов по этой проблеме.

Спасибо.

Valick
непонятно совсем ничего, но есть большое подозрение что база организована неправильно, иначе не приходилось бы "выносить сор из избы" и делать сравнение средствами РНР, а не средствами самой СУРБД, в которую изначально заложен функционал для подобного рода манипуляций.

_____________
Стимулятор ~yoomoney - 41001303250491
art1804
Что именно непонятно? Ну, или как это можно сделать средствами БД? Нужно, чтобы базовый list понял, что в других list есть большее количество sub. И все это можно было друг с другом сравнивать и определять дальнейшие действия.
Valick
в MySQL есть интересная функция IF сравнить строки двух столбцов не составит труда, правда как это будет работать без первичного ключа не возьмусь утверждать
на всякий случай покажите структуру таблиц

_____________
Стимулятор ~yoomoney - 41001303250491
art1804
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| list | int(11) | NO | MUL | NULL | |
| sub | int(11) | NO | MUL | NULL | |
| met | int(11) | NO | MUL | NULL | |
| com | int(11) | YES | | NULL | |
| iso | tinyint(4) | YES | | 0 | |
| del | int(1) | YES | | 0 | |
+-------------+---------------+------+-----+---------+-------+
Valick
синхронизируемые таблицы должны быть связаны по одному из полей, зачастую это как раз и есть первичный ключ
по какому признаку определять какие строки надо сравнивать? где структура Т2?

_____________
Стимулятор ~yoomoney - 41001303250491
art1804
Valick, спасибо за отклик. Сообразил как сделать, но не через sql if. Пересмотрел вариант с условиями вывода. Костыли, но работает...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.