Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Không thể liên kết số nhận dạng nhiều phần trên SQL Server 2008

Ví dụ mã mà bạn đã hiển thị có dấu ba chấm và tôi tin rằng chính những gì có trong dấu ba chấm đang gây ra sự cố.

Bạn có:

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

Giả sử đó là một cái gì đó như:

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

Nói cách khác, sự pha trộn của cú pháp nối trong ANSI 92 trước với cú pháp nối ngoài ANSI 92. Kiểm tra trên SQL Server 2005, có vẻ như bí danh R cho các yêu cầu không được nhìn thấy sau dấu phẩy ngăn cách R với ... trong ví dụ của bạn và [eXample] là X trong ví dụ của bạn. Tuy nhiên, những điều sau đây đã hoạt động:

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

hoặc

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.

hoặc yêu thích của tôi, vì tôi thích cú pháp tham gia 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. Đặt tìm nạp trước hàng mặc định trong SQL Server bằng trình điều khiển JDBC

  2. Lưu trữ một giây nhảy vọt trong SQL Server 2008

  3. Phần thời gian của trường DateTime trong SQL

  4. Tại sao SQL Server bị mất một phần nghìn giây?

  5. Tại sao sử dụng Chọn 100 Phần trăm Hàng đầu?