Я столкнулся с проблемой немного в базе данных mysql. У меня есть две таблицы, такие как пользователь и почта.получить случайную запись конкретного объекта в базе данных mysql
стол пользователя
сообщение таблица
MySQL Query
SELECT user_id,name FROM `post` where user_id IN(1,3,4); // 1,3,4 id of user from user table
Над MySQL Query рабочего fine.But Теперь я хочу получил максимум три записи каждого пользователя случайным образом. Результат запроса выше
user_id name
1 one
3 two
1 three
1 four
1 five
4 somthing
4 test
1 some body
3 help
1 beauty
Как я случайно получил три записи каждого пользователя, например user_id = 1, а затем случайным образом три записи этого пользователя из базы данных. Предположим, что у одного пользователя есть 1000 сообщений, а у другого пользователя также 500 сообщений. я хочу показать только максимум 3 сообщения каждого пользователя с помощью запроса mysql базы данных.
Заранее благодарен!
Если вы хотите, рассмотрит следующую этой простой двухступенчатого курс действий: 1 Если вы еще этого не сделали, укажите надлежащие DDL (и/или sqlfiddle), чтобы мы могли легче реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, который соответствует информации, представленной на шаге 1. Нам не нужно видеть 1000 строк. 12, вероятно, сделают это. – Strawberry
Попробуйте С этим .......SELECT user_id, name FROM post WHERE user_id IN (ваши значения) ORDER BY RAND() LIMIT 0,3 –
@Zaibi вы ограничиваете строки, которые мне не нужны. Предположим, user_id IN (1,3,4) // выбираем случайным образом максимум три столбца каждого пользователя, а не три строки столбцовой таблицы , поэтому максимальные строки 3 * 3 = 9 // как три пользователя, такие как 1,3 и 4. – Haseeb