Using ROW_NUMBER() will probably be more efficent in SQL2008-- *** Create some usable test data ***-- Do this if you want quick answers!CREATE TABLE #tbl_tm( tbl_tm_id int NOT NULL ,tm_number varchar(25) NOT NULL)INSERT INTO #tbl_tmVALUES (1, 'TM1') ,(2, 'TM2') ,(3, 'TM3')CREATE TABLE #tbl_comments( tbl_comments_id int NOT NULL ,tbl_comments_tm_number varchar(25) NOT NULL ,tbl_comments_comments varchar(50) NOT NULL)INSERT INTO #tbl_commentsVALUES (1, 'TM3', '1st comment on TM3') ,(2, 'TM3', '2nd comment on TM3') ,(3, 'TM2', '1st comment on TM2') ,(4, 'TM1', '1st comment on TM1') ,(5, 'TM3', '3rd comment on TM3') ,(6, 'TM2', '2nd comment on TM2') ,(7 , 'TM2', '3rd comment on TM2')-- *** End Of Test Data ***SELECT *FROM #tbl_tm T1 JOIN ( SELECT * ,ROW_NUMBER() OVER (PARTITION BY T2.tbl_comments_tm_number ORDER BY tbl_comments_id DESC) AS RowNum FROM #tbl_comments T2 ) D ON T1.tm_number = D.tbl_comments_tm_number AND D.RowNum = 1