Это почти всегда даст вам лучшую производительность, чем метод подзапроса. В основном вы ищете строку, в которой нет других строк, а не строку с наибольшей датой:
SELECT
P.ProjectID,
P.ProjectName,
T.ThingID,
T.ThingName
FROM
dbo.Projects P
INNER JOIN dbo.ProjectThingLinks PTL1 ON
PTL1.ProjectID = P.ProjectID
LEFT OUTER JOIN dbo.ProjectThingLinks PTL2 ON
PTL2.ProjectID = ThingID = PTL1.ThingID AND
PTL2.CreatedDate > PTL1.CreatedDate
INNER JOIN dbo.Things T ON
T.ThingID = PTL1.ThingID
WHERE
PTL2.ThingID IS NULL
Как только вы определились со своими бизнес-правилами для обработки двух строк с одинаковыми значениями CreatedDate, вам может потребоваться настроить запрос.
Кроме того, как примечание, таблица «Вещи», как правило, является хорошим признаком проблемы с дизайном вашей базы данных. Таблицы должны представлять отдельные объекты реальной жизни. Такая общность обычно приводит к проблемам в будущем. Если это ресурсы, то они, вероятно, будут иметь определенные атрибуты, помимо имени. Может быть, ваш случай очень особенный, но, скорее всего, нет. ;)