За последние 24 часа нас посетили 17706 программистов и 1722 робота. Сейчас ищут 873 программиста ...

Выборка из БД, вывод максимального значения при группировке

Тема в разделе "PHP и базы данных", создана пользователем SiUna, 2 май 2012.

  1. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Re: Выборка из БД, вывод максимального значения при группиро

    Легко ... потому что Вы не программист(ка), и никогда им(ей) не будете. Это не Ваше, увы.
    Займитесь чем-нибудь другим, не связанным с логикой, - не мучайте себя... и других тоже...
    п.с.
    сильно не огорчайтесь этим, просто так Природа распорядилась - кто-то не может быть Музыкантом, кто-то Спортсменом, а кто-то Программистом.
     
  2. SiUna

    SiUna Активный пользователь

    С нами с:
    1 апр 2012
    Сообщения:
    41
    Симпатии:
    0
    Re: Выборка из БД, вывод максимального значения при группиро

    Я знаю, мне но мне нужен этот запрос, я придумываю разные варианты как решить, так что ненадо) Это все что я могу. И вообще я этим занимаюсь всего 2 месяц, и у меня нет возможности перерыть кучу мануалов и запомнить все функции. А люди здесь сразу знают какую функцию нужно использовать, поэтому я советы и спрашиваю.

    Добавлено спустя 1 минуту 22 секунды:
    Re: Выборка из БД, вывод максимального значения при группировке
    Спасибо, понятно. Значит использовать эту функцию вообще ненужно в моем запросе, потому что мне нужны все пользователи с их максимальным результатом, а не 1.
     
  3. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Re: Выборка из БД, вывод максимального значения при группиро

    Эхе-хе, бросайте Вы это дело - оно не Ваше, ибо выше Вам уже всё сказали как надо сделать, нужно только желание, заточенные к логике мозги и чуточку знаний. ;)

    Подобный запрос даст Вам параметры юзера из таблицы jos_comprofiler / надеюсь(!), user_id там уникален ;) / :
    Код (Text):
    1. SELECT jos_comprofiler.*, max(resulttest.result) as max_result
    2. FROM jos_comprofiler
    3. INNER JOIN resulttest ON resulttest.user_id = jos_comprofiler.user_id
    4. GROUP BY jos_comprofiler.user_id
    Если Вам нужны данные из другой таблицы, то подобный запрос Вам поможет:
    Код (Text):
    1. SELECT t.*, resulttest.*
    2. FROM (XXX) as t
    3. INNER JOIN resulttest ON resulttest.user_id = t.user_id AND resulttest.result = max_result
    , где вместо XXX вставляете верхний запрос
    и, надеюсь, пара user_id,result уникальна в таблице resulttest, иначе получите все записи, где результат равен максимальному для юзера

    Можно ещё с десяток вариантов решения задачи придумать/сделать. Удачи Вам в поиске оных...
    п.с.
    Второй запрос не эффективен и на относительно больших данных может заметно тормозить.