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

Sự khác biệt giữa việc sử dụng phép nối chéo và đặt dấu phẩy giữa hai bảng là gì?

Chúng trả về cùng một kết quả vì chúng giống hệt nhau về mặt ngữ nghĩa. Cái này:

select * 
  from A, B

... là (wince) cú pháp ANSI-89. Nếu không có mệnh đề WHERE để liên kết các bảng với nhau, kết quả là một tích cacte. Đó cũng chính là những gì mà giải pháp thay thế cung cấp:

    select * 
      from A 
cross join B

... nhưng CROSS JOIN là cú pháp ANSI-92.

Giới thiệu về Hiệu suất

Không có sự khác biệt về hiệu suất giữa chúng.

Tại sao sử dụng ANSI-92?

Lý do sử dụng cú pháp ANSI-92 là để hỗ trợ OUTER JOIN (IE:LEFT, FULL, RIGHT) - Cú pháp ANSI-89 không có bất kỳ cú pháp nào, vì vậy nhiều cơ sở dữ liệu đã triển khai riêng của chúng (không chuyển sang bất kỳ cơ sở dữ liệu nào khác ). IE:(+) của Oracle , =* của SQL Server



  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 kiểm tra xem một thủ tục được lưu trữ có tồn tại hay không trước khi tạo nó

  2. Tạo cơ sở dữ liệu theo chương trình trong SQL Server

  3. Mẹo để giảm độ phức tạp của máy chủ SQL của bạn

  4. Tôi có thể sử dụng Kiểu dữ liệu ngày trong máy chủ sql như thế nào?

  5. Các tùy chọn giám sát cơ sở dữ liệu hàng đầu có sẵn cho doanh nghiệp của bạn