TSQL left join and only last row from right

by Behlul 26. January 2011 11:03
SELECT  post.id, post.title, comment.id, comment.message 
FROM    post 
OUTER APPLY 
       
( 
       
SELECT  TOP 1 * 
       
FROM    comment с 
       
WHERE   comment.post_id = post.id 
       
ORDER BY 
                date
DESC 
       
) comment 

or

SELECT  * 
FROM    ( 
       
SELECT  post.id, post.title, comment.id, comment.message, 
                ROW_NUMBER
() OVER (PARTITION BY post.id ORDER BY comment.date DESC) AS rn 
       
FROM    post 
       
LEFT JOIN 
                comment 
       
ON      comment.post_id = post.id 
       
)
WHERE   rn = 1

The former is more efficient for few posts with many comments in each;

the latter is more efficient for many posts with few comments in each.

from : http://stackoverflow.com/questions/2281551/tsql-left-join-and-only-last-row-from-right

Tags:

Coding

Microsoft Tag

www.behlulbehram.com

Behlül Behram Kimdir?

2004 yılında Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümünden mezun oldu. 2000 yılından günümüze kadar C, C++, VB, VB.NET, C# dilleri ile bir çok proje yaptı. Halen Türkiyenin önde gelen bilişim firmalarının birinde   "Yazılım Geliştirme Uzmanı" olarak çalışmaktadır...


Yandex.Metrica