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

Hiểu kết hợp tự nhiên trong SQL

Đây là quá dài cho một bình luận. Không sử dụng các phép nối tự nhiên. Đừng bận tâm đến việc học các phép nối tự nhiên. Chúng thật ghê tởm.

Tại sao? Các điều kiện tham gia dựa trên các cột có cùng tên . Các phép nối tự nhiên thậm chí không tính đến các mối quan hệ khóa ngoại đã khai báo. Điều này có thể khá nguy hiểm. Hoặc - trong trường hợp của tôi - vì hầu như tất cả các bảng của tôi đều có CreatedAtCreatedBy , dù sao thì chúng cũng vô dụng.

Thay vào đó, hãy liệt kê join chìa khóa. Trong trường hợp của bạn (vì bạn có select * ), using mệnh đề thích hợp nhất:

SELECT * 
FROM R JOIN
     S
     USING (A, B);

Điều này cũng có lợi thế là các khóa được hiển thị rõ ràng trong truy vấn, giúp giảm đáng kể phạm vi lỗi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiệu suất MySQL:THAM GIA BẬT so với Ở ĐÂU

  2. Nhóm MySQL từ quý đến kỳ

  3. Người chọn người trúng thưởng vé xổ số PHP

  4. Amazon RDS Aurora so với RDS MySQL và MySQL trên EC2?

  5. Cách lấy tất cả bản ghi mà không cần xóa trong Nhóm trong mysql