L'esempio di codice che hai mostrato aveva i puntini di sospensione e credo che sia ciò che si trova nei puntini di sospensione a causare il problema.
Hai:
SELECT R.[ID], C.[name] AS [company], ...
FROM [requests] AS R, ...
LEFT OUTER JOIN [companies] AS C
ON R.[company_id] = S.ID
Diciamo che è qualcosa del tipo:
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
In altre parole, la combinazione della sintassi di inner join pre-ANSI 92 con la sintassi di inner join ANSI 92. Test su SQL Server 2005, sembra che l'alias R per le richieste non sia visto oltre la virgola che separa R da ... nel tuo esempio e [eXample] come X nel mio. Tuttavia, il seguente ha funzionato:
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
o
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.
o il mio preferito, perché mi piace la sintassi di join ANSI 92:
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