Моей таблицы очень просты:MYSQL - Выбор пользователей с большинством дублирующих записей с конкретным пользователем
user_id, QuestionID, answerid (остальное не важно)
id | user_id | questionid | answerid
====+==========+============+=============
1 | 1 | 1 | 11
2 | 1 | 2 | 14
3 | 2 | 1 | 11
4 | 2 | 2 | 14
5 | 3 | 1 | 11
6 | 3 | 2 | 16
Мне нужна список идентификаторов пользователей которые имеют те же answerids, что и текущий (указанный) userid, отсортированные по большинству ответов.
В основном ... список пользователей, которые ответили так же, как и текущий пользователь, на вопросы ... с рядом одинаковых ответов.
список должен выглядеть - для идентификатора пользователя (1):
- Идентификатор_пользователя (2) - 2
- Идентификатор_пользователя (3) - 1
так Userid 2 имеет 2 одинаковые ответы, Идентификатор_пользователя 1 и Userid 3 имеет 1 такой же ответ, как идентификатор пользователя 1
Благодаря много ...
Спасибо, но на самом деле, конечно, они не будут ВСЕ отвечать на одни и те же вопросы ... –
@HelFrozeOver. , , Это отвечает на ваш вопрос. Мой комментарий - это просто мнение о том, насколько полезной мера. –
Является ли ваш метод лучше, чем решение, которое в конечном итоге работает для меня лучше: выберите A.user_id, count (A.answerid) AS match_cnt из '#__ test' as A join (выберите user_id, answerid из' #__ test', где user_id = "'.mysql_real_escape_string ($ myid).'") как B on (A.answerid = B.answerid AND A.user_id <> B.user_id) группой по порядку A.user_id по match_cnt DESC –