У меня есть база данных (даты - просто примеры для заказа) ...
---------------------
| user | item | date |
---------------------
| 1 | a | 123 |
| 3 | b | 124 |
| 1 | c | 125 |
| 2 | d | 126 |
| 5 | i | 127 |
| 4 | e | 128 |
| 6 | f | 129 |
| 9 | g | 130 |
| 3 | h | 131 |
| 9 | s | 132 |
| 1 | j | 133 |
| 2 | k | 134 |
| 1 | l | 135 |
| 1 | m | 136 |
| 1 | n | 137 |
| 8 | o | 138 |
| 5 | p | 139 |
| 9 | q | 140 |
| 7 | r | 141 |
---------------------
Я хотел бы получить все записи до первых 8 уникальных пользователей, что дало бы результаты ...
---------------------
| user | item | date |
---------------------
| 1 | a | 123 |
| 3 | b | 124 |
| 1 | c | 125 |
| 2 | d | 126 |
| 5 | i | 127 |
| 4 | e | 128 |
| 6 | f | 129 |
| 9 | g | 130 |
| 3 | h | 131 |
| 9 | s | 132 |
| 1 | j | 133 |
| 2 | k | 134 |
| 1 | l | 135 |
| 1 | m | 136 |
| 1 | n | 137 |
| 8 | o | 138 |
---------------------
Затем из этих записей я хотел бы получить самые последние 4 записи на уникального пользователя , чтобы результаты выглядели как ...
---------------------
| user | item | date |
---------------------
| 3 | b | 124 |
| 2 | d | 126 |
| 5 | i | 127 |
| 4 | e | 128 |
| 6 | f | 129 |
| 9 | g | 130 |
| 3 | h | 131 |
| 9 | s | 132 |
| 1 | j | 133 |
| 2 | k | 134 |
| 1 | l | 135 |
| 1 | m | 136 |
| 1 | n | 137 |
| 8 | o | 138 |
---------------------
В идеале я мог бы сделать это одним запросом.Самое близкое, что я смог получить, это запрос:
SELECT users,
GROUP_CONCAT(items)
FROM db
GROUP BY users
ORDER BY date
LIMIT 8
Но GROUP_CONCAT возвращает все результаты для этого пользователя, а не только сумму в выборе.
У меня естьтакже пытался ...
SELECT users
FROM db AS u1
JOIN (SELECT DISTINCT users FROM db) AS u2 ON u1.users = u2.users
из другого предложения, которое я нашел, но это тоже не сработало.
Я пробовал кучу других вещей, которые я действительно не сохранил, потому чтоони не работали, и я был уверен, что я это пойму, но прошло две недели, и я не приблизился.Если есть какие-нибудь гуру SQL, которые могут указать мне правильное направление, это было бы действительно здорово.Спасибо.