mRWiNeT,
$q = mysql_query("SELECT *, (`rating` + `bonus`) AS summ FROM `users` ORDER BY `summ` DESC LIMIT $start, $p_page");
while ($ank = mysql_fetch_assoc($q)) {
// вывод анкеты
}
зы: я этот вариант в первую очередь подумал, правда там функцию sum() на автомате дописал вот и написал ниже что опечатка. Но как я понял этот вариант не подходит.
// хотя по идеи все же правильно. блин, запутался сам уже)
че та у меня не получается
я пита юс писать на базу
mysql_query("UPDATE `ud_taxmin_bol_jam_hisob` SET
`TJ` = `TJ` + 1,
`jami` = `jami` + 1
WHERE `azo_id` = '" . $res['azo_id'] . "'") or die(mysql_error());
mysql_query("UPDATE `ud_taxmin_bol_jam_oyin` SET
`TJ` = `TJ` + 1,
`jami` = `jami` + 1
WHERE `azo_id` = '" . $res['azo_id'] . "'") or die(mysql_error());
mysql_query("UPDATE `users` SET
`balans`= `balans` + 1
WHERE `id` = '" . $res['azo_id'] . "'") or die(mysql_error());
вот так но на базу не пишет
mysql_query("UPDATE `ud_taxmin_bol_jam_hisob` SET
`TJ` = `TJ` + 1,
`jami` = `jami` + 1
WHERE `azo_id` = '" . $res['azo_id'] . "'") or die(mysql_error());
эти столбцов что та не так сделал что ли?
Здравствуйте, интересует MYSQL запрос один, который никак у меня не получается.
Таблица group: mainid, name
Таблица elements: elementid, `mainid`, time
Задача: вывести данные из таблицы group сортируя результат по полю time из таблицы elements.
Состряпал что-то вроде
SELECT `group`.*, MAX(`elements`.`time`) AS `time` FROM `group` LEFT JOIN `elements` USING(`mainid`) ORDER BY `time` DESC
Ожидаемо выводит только одну самую новую группу, а вот как вывести все?
Да и вообще выбирается запись из второй таблицы без учёта поля mainid, а по принципу MAX
Как вариант сделать так:
SELECT `group`.*, `elements`.`time` FROM `group` LEFT JOIN `elements` USING(`mainid`) GROUP BY `mainid` ORDER BY `time` DESC
Но возникает вопрос о нагрузке, насколько группировка плоха?
seg0ro, функция MAX() возвращает один же кортеж)
# seg0ro (10.08.2016 / 09:10)
Задача: вывести данные из таблицы group сортируя результат по полю time из таблицы elements.
SELECT `group`.* FROM `group`
LEFT JOIN `elements`
USING(`mainid`)
ORDER BY `elements`.`time` DESC
seg0ro, посмелюсь предположить что тебе нужно получить самые последние записи для каждой из групп? Тогда мне кажется логичнее искать только те записи, которые существуют для каждой группы, то есть использовать JOIN. Ну и как ты выше написал группировать по mainid
SELECT `group`.*, `elements`.`time` FROM `group` JOIN `elements`
USING(`mainid`)
GROUP BY `group`.`mainid`
ORDER BY `elements`.`time` DESC
не, не пойдёт. В этом случае сортировка идёт по первому элементу группы, а не последнему
Таки встроенным запросом нужно вычислять одну последнюю запись группы и по времени этой записи сортировать. Но вот с вложенными запросами у меня чуть хуже чем никак