Đâ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ó CreatedAt
và CreatedBy
, 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.