Есть 2 таблицы: TABLE_USER и ARTICLE_TABLE Имею запрос $sql = "SELECT id,username,gorod,country,avatar,surname,status,UNIX_TIMESTAMP(regdate) AS regdate FROM ".TABLE_USER. " WHERE avatar!='' AND surname!=''". " ORDER by status ASC LIMIT ".($off*$num).",".$num; который выводит юзеров, которые загрузили аватар и указали фамилию. А как теперь модифицировать запрос, чтобы вывести тех у кого более 2- статей? Стоит или в запросе совмещать две таблицы?
Isis, спасибо! Ознакомился, единстенное - запрос правильно сформулировать не могу! Может как-то выбрать данные одним запросом, кинуть их в массив, а потом запросом к другой таблице? Моя задача стоит - отсортировать данные из первой таблицы пользоватлей по критерию количества новостей во второй таблице!
Второй вариант. Необходимо отсортировать пользователей по кол-ву у них статей. Как оптимальнее это сделать?
select u.login,(select count(id) from article where uid=u.id) c from users u join article a on u.id=a.uid where u.avatar!='' and u.surname!='' group by a.uid order by c desc
Чакэ, спасибо! Думаю, это вариант. Сейчас попробую. А не положит ли такой запрос сервер при нагрузке?
Значит, решение будет следующим - созать дополнительное поле в таблице юзеров, в которое заносить скриптом кол-во статей по крону, а далее просто забирать селектом.
Можно и так, только все равно нужно написать массив, который сделает записи в поле кол-во статей уже по имеющемуся количеству.
Попутно еще вопрос. Есть такой запрос к базе PHP: $numrows = $db->one_data('SELECT COUNT(*) FROM '.TАBLЕ_USERS. " WHERE deactivated='0' AND (status LIKE '[Gold%' OR status LIKE '[Silver%' OR status LIKE '[Pro%') AND logo!=''". Есть поле userlogin в TАBLЕ_USERS, в котором есть значения с некорректными символами типа "-,_". Можно ли добавить условие в запрос, чтобы такие заначения пропускались? Или проще скриптом откореектировать значеня в userlogin ?
Чакэ, Вы меня не поняли. Я имею ввиду, что допустим у юзера уже размещено 5 статей, то чтобы добавть +1, в ячейке уже должно быть значение 5. А если значения не заполнены по имеющемуся кол-ву статей у пользователей, то добавление 1 даст в сумме 1!
Чем именно они некорректны Что значит пропускались? А вообще я разрешаю, если вам разрешение нужно Один раз с помощью подзапроса установите текущее количество статей, в чем проблема?