Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pengidentifikasi multi-bagian tidak dapat diikat pada SQL Server 2008

Contoh kode yang Anda tunjukkan memiliki elips dan saya yakin apa yang ada di elips itulah yang menyebabkan masalah.

Anda memiliki:

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

Katakanlah itu seperti:

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

Dengan kata lain pencampuran sintaks gabungan dalam pra-ANSI 92 dengan sintaks gabungan luar ANSI 92. Pengujian pada SQL Server 2005, tampaknya alias R untuk permintaan tidak terlihat melewati koma yang memisahkan R dari ... dalam contoh Anda, dan [eXample] sebagai X dalam milik saya. Namun berikut ini berhasil:

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

atau

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.

atau favorit saya, karena saya suka ANSI 92 bergabung dengan sintaks:

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. Bingung tentang UPDLOCK, HOLDLOCK

  2. Bagaimana cara mendapatkan data 7 hari terakhir dari datetime saat ini hingga 7 hari terakhir di sql server

  3. Inilah Tiga Alasan Mengapa Anda Mungkin Melihat Aktivitas Puncak di Instance SQL Anda

  4. SQL Server 2016:Buat Prosedur Tersimpan

  5. Dalam SQL, bagaimana Anda bisa mengelompokkan dalam rentang?