Я знаю, что название поста плохое, но выслушай меня. Подобный вопрос возник на днях на работе, и хотя я нашел способ обойти это, проблема все еще преследует меня.
Предположим, в Stackoverflow есть только 3 таблицы.
Users ( username )
Comments ( comment, creationdate )
UsersCommentsJoin , this is the join table between the first 2 tables.
Теперь предположим, что я хочу сделать запрос, который вернул бы всех пользователей с последними 2 последними комментариями. Таким образом, набор результатов будет выглядеть следующим образом.
|username| most recent comment | second most recent comment|
Как же я могу создать этот запрос? Я решил эту проблему ранее, просто вернув только самый последний комментарий и даже не пытаясь получить второй, и, парень, позвольте мне сказать вам, что это выглядело гораздо более сложным, чем когда я думал с подпунктами, TOP и другой странной акробатикой БД .
Бонусный раунд Почему некоторые запросы, которые логически кажутся простыми, оказываются монстровыми, по крайней мере, с моей точки зрения новичка?
РЕДАКТИРОВАТЬ: я использовал сервер MS SQL.