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

Cú pháp nối nào tốt hơn?

Vâng, "tốt hơn" là chủ quan. Có một số phong cách ở đây. Nhưng tôi sẽ giải quyết các câu hỏi của bạn trực tiếp.

  1. Cả hai đều hoạt động như nhau
  2. Cả hai đều tuân thủ ANSI.
  3. Vấn đề với ví dụ đầu tiên là

    • rất dễ vô tình tạo ra sản phẩm chéo (vì dễ dàng bỏ qua các tiêu chí kết hợp hơn)

    • việc gỡ lỗi các tiêu chí tham gia cũng trở nên khó khăn khi bạn thêm ngày càng nhiều bảng vào tham gia

    • vì cú pháp nối ngoài kiểu cũ (* =) đã không còn được dùng nữa (từ lâu đã được ghi nhận là trả về kết quả không chính xác), khi bạn cần giới thiệu các phép nối ngoài, bạn cần kết hợp các phép nối kiểu mới và kiểu cũ ... tại sao lại khuyến khích không nhất quán?

    • mặc dù nó không chính xác là cơ quan có thẩm quyền về các phương pháp hay nhất, nhưng Microsoft khuyến nghị cú pháp INNER / OUTER JOIN rõ ràng

    • với phương pháp sau:

      • bạn đang sử dụng cú pháp nối nhất quán bất kể bên trong / bên ngoài
      • khó khăn hơn (không phải là không thể) nếu vô tình lấy được sản phẩm chéo
      • tách biệt tiêu chí kết hợp khỏi tiêu chí bộ lọc có thể giúp gỡ lỗi dễ dàng hơn

Tôi đã viết bài đăng mà Kevin đã chỉ đến.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận nhiều giá trị trong con trỏ máy chủ SQL

  2. Cách loại trừ các bản ghi có giá trị nhất định trong sql select

  3. Làm cách nào để xem toàn bộ nội dung của cột văn bản hoặc varchar (MAX) trong SQL Server 2008 Management Studio?

  4. SQL Server 2014:Mã hóa sao lưu gốc

  5. Cách thêm Ràng buộc DEFAULT vào một cột hiện có trong SQL Server