Я знаю, что заголовок сообщения плохой, но выслушайте меня. Подобный вопрос возник на другой день на работе, и пока я нашел способ обойти его, проблема все еще преследует меня.SQL Server Присоединиться к последним 2 записям
Предположим, что у 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 и другими странными динамиками в базе данных ,
Bonus Round Почему некоторые запросы, которые кажутся легкими логически, оказываются чудовищными, по крайней мере, с точки зрения новичков?
EDIT: Я использовал сервер MS SQL.
FYI, только один вопрос на вопрос здесь. –
В теге ['наибольшая n-на-группу'] (http://stackoverflow.com/questions/tagged/greatest-n-per-group) есть много похожих вопросов. Вы следуете этой ссылке или ссылкам под заголовком ** Related **, справа. –
Это может помочь, если вы также включили используемую СУБД. –