Как сгруппировать запрос sql, но каждый раз делать его случайным образом по идентификатору? - PullRequest
0 голосов
/ 06 октября 2018

Здравствуйте, я беру информацию из таблицы случайным образом.Каждая статья имеет идентификатор автора ojm_pages_articles.id_ojm_peoples_author.У каждого автора есть несколько статей ojm_pages_articles.id_article.

Я пытаюсь выбрать случайную статью для каждого автора, но не хочу, чтобы один и тот же автор выбирался дважды.Я сделал GROUP BY ojm_pages_articles.id_ojm_peoples_author, но он не выбирает случайные статьи для каждого автора, вместо этого он выбирает одну статью для каждого автора и группирует ее.

Это мой код:

SELECT DISTINCT ojm_pages_articles.id_article, ojm_pages_articles.titre, ojm_pages_articles.description, ojm_pages_articles.id_rubrique,  ojm_pages_articles.id_ojm_peoples_author              

FROM  `ojm_pages_articles`              
WHERE ojm_pages_articles.this_is='article'  

GROUP BY ojm_pages_articles.id_ojm_peoples_author

ORDER BY rand(), 
ojm_pages_articles.classement_article ASC, 
ojm_pages_articles.id_article  DESC LIMIT 9 

Как я могу сделать произвольный запрос статей, но сгруппировать его по авторам так, чтобы при каждом обновлении страницы отображалась случайная статья для этого автора?Как случайным образом сгруппировать SQL-запрос по идентификатору каждый раз?

1 Ответ

0 голосов
/ 06 октября 2018

Попробуйте выбрать только статью и автора, сгруппировать по автору и идентификатору статьи и посмотрите, работает ли это.

SELECT DISTINCT ojm_pages_articles.id_ojm_peoples_author, ojm_pages_articles.id_article
FROM  `ojm_pages_articles`              
WHERE ojm_pages_articles.this_is='article'  

GROUP BY ojm_pages_articles.id_ojm_peoples_author, ojm_pages_articles.id_article

ORDER BY rand(), 
ojm_pages_articles.classement_article ASC, 
ojm_pages_articles.id_article  DESC LIMIT 9 

Если это работает, вы можете снова присоединиться (этот набор строк) к ojm_pages_articles, чтобы получитьдругие поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...