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

Có "HOẶC" trong điều kiện INNER JOIN có phải là một ý tưởng tồi không?

Loại JOIN này không thể tối ưu hóa thành HASH JOIN hoặc MERGE JOIN .

Nó có thể được thể hiện dưới dạng kết hợp của hai tập kết quả:

SELECT  *
FROM    maintable m
JOIN    othertable o
ON      o.parentId = m.id
UNION
SELECT  *
FROM    maintable m
JOIN    othertable o
ON      o.id = m.parentId

, mỗi người trong số chúng là một phần tử tương đương, tuy nhiên, SQL Server Trình tối ưu hóa của không đủ thông minh để nhìn thấy nó trong truy vấn bạn đã viết (mặc dù chúng tương đương về mặt logic).



  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 xuất kết quả truy vấn sang .csv hoặc Tệp được phân cách bằng tab trong SQL Server Management Studio (SSMS) - Hướng dẫn SQL Server / TSQL Phần 23

  2. Tạo giá trị int ngẫu nhiên từ 3 đến 6

  3. Thay đổi các loại cột trong một bảng lớn

  4. Xóa thư cơ sở dữ liệu khỏi cơ sở dữ liệu msdb trong SQL Server (T-SQL)

  5. Kiểm tra tình trạng máy chủ SQL chủ động, Phần 2:Bảo trì