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

Sự khác biệt giữa hai cách tiếp cận bảng nối này?

Ngoài cú pháp, đối với đoạn mã nhỏ, chúng hoạt động hoàn toàn giống nhau. Nhưng nếu có thể, hãy luôn viết các truy vấn mới bằng ANSI-JOINs.

Về mặt ngữ nghĩa, ký hiệu dấu phẩy được sử dụng để tạo ra sản phẩm CARTESIAN giữa hai bảng, có nghĩa là tạo ra một ma trận của tất cả các bản ghi từ bảng A với tất cả các bản ghi từ bảng B, do đó hai bảng có 4 và 6 bản ghi tương ứng tạo ra 24 bản ghi. Sử dụng mệnh đề WHERE, sau đó bạn có thể chọn các hàng mà bạn thực sự muốn từ sản phẩm cartesian này. Tuy nhiên, MySQL không thực sự theo sát và tạo ra ma trận khổng lồ này, nhưng về mặt ngữ nghĩa thì điều này có nghĩa là gì.

Cú pháp JOIN là tiêu chuẩn ANSI xác định rõ ràng hơn cách các bảng tương tác. Bằng cách đặt ON bên cạnh JOIN , nó làm rõ điều gì liên kết hai bảng với nhau.

Về mặt chức năng, chúng sẽ thực hiện giống nhau cho hai truy vấn của bạn. Sự khác biệt xuất hiện khi bạn bắt đầu sử dụng [OUTER] khác THAM GIA các loại.

Đối với MySQL cụ thể, ký hiệu dấu phẩy có một điểm khác biệt

STRAIGHT_JOIN tương tự như JOIN, ngoại trừ việc bảng bên trái luôn được đọc trước bảng bên phải. Điều này có thể được sử dụng cho (một vài) trường hợp mà trình tối ưu hóa kết hợp đặt các bảng không đúng thứ tự.

Tuy nhiên, điều đó sẽ không khôn ngoan ngân hàng về khoản chênh lệch này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tự động tạo di chuyển bằng Sequelize CLI từ các mô hình Sequelize?

  2. Kết nối với MySQL từ xa

  3. MySQL:giao dịch trong một thủ tục được lưu trữ

  4. Sử dụng trình kích hoạt MySQL

  5. Tìm mức lương cao thứ 2 theo cách tốt nhất có thể