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

Tại sao tham gia bên trái t-sql của tôi không hoạt động?

Lý do là vì bạn đang đưa bảng bên phải vào WHERE mệnh đề. Bạn nên chuyển nó sang ON điều kiện của LEFT JOIN :

Select    P.appId, S.stepId, S.section, P.start
From      #appSteps    S   With (NoLock)
Left Join #appProgress P   On  S.stepId = P.stepId 
                           And P.appId = 101
Where     S.section Is Not Null

Lý do nó làm được điều này là vì WHERE mệnh đề được đánh giá sau LEFT JOIN , sau đó lọc ra NULL của bạn kết quả từ LEFT JOIN .

Bao gồm bảng bên phải của LEFT JOIN (hoặc bảng bên trái của RIGHT JOIN ) trong WHERE mệnh đề chuyển đổi hiệu quả OUTER JOIN vào một INNER JOIN .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tăng tốc độ chèn hàng loạt vào MS SQL Server bằng pyodbc

  2. Cách xóa tài khoản thư cơ sở dữ liệu khỏi hồ sơ trong SQL Server (T-SQL)

  3. Cách tính hình vuông trong SQL Server

  4. Đối chiếu trong SQL Server

  5. Chuỗi máy chủ Sql thành chuyển đổi ngày tháng