Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Идентификаторът от няколко части не може да бъде обвързан на SQL Server 2008

Примерът за код, който показахте, имаше многоточия и вярвам, че това, което е в многоточията, причинява проблема.

Имате:

SELECT R.[ID], C.[name] AS [company], ...
FROM [requests] AS R, ...
LEFT OUTER JOIN [companies] AS C
ON R.[company_id] = S.ID

Да кажем, че това е нещо като:

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

С други думи, смесването на синтаксиса на вътрешното свързване преди ANSI 92 с синтаксиса на външното свързване на ANSI 92. При тестване на SQL Server 2005 изглежда, че псевдонимът R за заявки не се вижда след запетаята, която разделя R от ... във вашия пример и [eXample] като X в моя. Следното обаче проработи:

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

или

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.

или моят любим, защото харесвам 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Subsonic 2.2 Генерирано свойство за SQL Server 2008 Дата

  2. Как мога да направя първичен ключ като AUTOINCREMENT

  3. SQL Delete изчиства таблицата вместо грешка

  4. SQL Threadsafe АКТУАЛИЗАЦИЯ TOP 1 за FIFO Queue

  5. SQL Server тригери - ред на изпълнение