Problem: 

Manchmal möchte man einen Datensatz nur mit einem einzigen spezifischen Unter-Datensatz verknüpfen.
Das Problem ist, dass man mit einer Unterabfrage und TOP 1 in Kombination mit INNER JOIN nicht weiter kommt, weil man die übergeordnete Abfrage nicht als Filter nutzen kann.

 

Antwort:

Ersetzt man LEFT JOIN durch OUTER APPLY, kann man die übergeordnete Abfrage als Filter nutzen.

FROM [dbo].[A]
OUTER APPLY (Select top 1
        [RID],
        [BBB]
        from [dbo].[B]
        where RID = [A].RID
    ) as c