Příklad kódu, který jste ukázali, měl elipsy a věřím, že to je to, co je v elipsách, co způsobuje potíže.
Máte:
SELECT R.[ID], C.[name] AS [company], ...
FROM [requests] AS R, ...
LEFT OUTER JOIN [companies] AS C
ON R.[company_id] = S.ID
Řekněme, že je to něco jako:
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
Jinými slovy smíchání syntaxe vnitřního spojení před ANSI 92 se syntaxí vnějšího spojení ANSI 92. Při testování na SQL Server 2005 se zdá, že alias R pro požadavky není vidět za čárkou, která odděluje R od ... ve vašem příkladu, a [příklad] jako X v mém. Následující však fungovalo:
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
nebo
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.
nebo můj oblíbený, protože se mi líbí syntaxe spojení 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