user1 | 1 | user3 | 2
user1 | 1 | user3 | 3
user1 | 3 | user3 | 2
user1 | 3 | user3 | 3
Затем GROUP BY объединял их по последнему полю:user1 | 1 | user3 | 2
user1 | 1 | user3 | 3
После этого SELECT DISTINCT выбирал только это поле:2
3
Ну а уже затем первое из значений возвращалось в PHP. id name age
1 Вася 17
2 Петя 21
3 Вася 17
4 Миша 19
5 Миша 19
t1.id t1.name t1.age t2.id
1 Вася 17 1
2 Петя 21 2
3 Вася 17 NULL
4 Миша 19 4
5 Миша 19 NULL
id name age
1 Вася 17
2 Петя 21
4 Миша 19