Das von Ihnen gezeigte Codebeispiel hatte Auslassungspunkte, und ich glaube, dass die Auslassungspunkte die Probleme verursachen.
Sie haben:
SELECT R.[ID], C.[name] AS [company], ...
FROM [requests] AS R, ...
LEFT OUTER JOIN [companies] AS C
ON R.[company_id] = S.ID
Nehmen wir an, das ist so etwas wie:
SELECT R.[ID], C.[name] AS [company], X.Field
FROM [requests] AS R, [eXample] as X
LEFT OUTER JOIN [companies] AS C
ON R.[company_id] = S.ID
WHERE X.[request_id] = R.ID
Mit anderen Worten, das Mischen der Inner Join-Syntax vor ANSI 92 mit der Outer Join-Syntax von ANSI 92. Beim Testen auf SQL Server 2005 scheint es, dass der Alias R für Anforderungen nicht hinter dem Komma zu sehen ist, das R von ... in Ihrem Beispiel und [Beispiel] als X in meinem trennt. Folgendes hat jedoch funktioniert:
SELECT R.[ID], C.[name] AS [company], X.Field
FROM [eXample] as X, [requests] AS R
-- Requests and companies on the same side of the comma
LEFT OUTER JOIN [companies] AS C
ON R.[company_id] = S.ID
WHERE X.[request_id] = R.ID
oder
SELECT R.[ID], C.[name] AS [company], X.Field
FROM [requests] AS R LEFT OUTER JOIN [companies] AS C
ON R.[company_id] = S.ID, [eXample] as X
WHERE X.[request_id] = R.ID
-- Yuck, I would hate to find this. Not at all sure from reading
-- the code how it would work.
oder mein Favorit, weil ich die Join-Syntax von ANSI 92 mag:
SELECT R.[ID], C.[name] AS [company], X.Field
FROM [requests] AS R
INNER JOIN [eXample] as X ON X.[request_id] = R.ID
LEFT OUTER JOIN [companies] AS C ON R.[company_id] = S.ID