У меня есть таблица SQL, которая будет объединена с двумя подтаблицами. Одна из этих подтаблиц является простым соединением, но другая будет иметь одну или несколько записей, которые соответствуют одной из записей в родительской таблице. Мне нужно написать запрос, который будет возвращать каждую запись в родительской таблице и только самую последнюю запись для каждой соответствующей записи в родительской таблице.
Так, например:
Родительская таблица
ParentID
ParentName
Идентификатор_пользователя
ParentBlahBlah
SubTable1
Идентификатор_пользователь
UserName
UserGroup
UserCreated
SubTable2
SubID
ParentID
Подимени
SubBlahBlah
Мой запрос в таком виде выглядит примерно так:
SELECT * FROM ParentTable
INNER JOIN SubTable1
ON ParentTable.UserID=SubTable1.UserID
INNER JOIN
(SELECT TOP 1 * FROM SubTable2) as Table2
ON ParentTable.ParentID = Table2.ParentID
Вот где я застрял. TOP явно не прав, поскольку он выбирает только одну строку, а не одну строку для каждого ParentID.
Я хотя бы на правильном пути?