Tôi sẽ giải quyết câu hỏi liệu những bất bình đẳng đó có luôn luôn thật. Câu trả lời là "không", không có trong SQL. Trong hầu hết các trường hợp, chúng tương đương nhau. Vấn đề nảy sinh với chuyển đổi kiểu ngầm định.
Đặc biệt, nếu a.id
là một số và các cột khác là chuỗi, khi đó bạn gặp trường hợp:
1 = '1' -- true
1 = '1.00' -- true
'1' = '1.00' -- false
Bạn có thể xem điều này
trên db <> fiddle này. Sẽ rất nhỏ nếu thiết lập điều này bằng cách sử dụng JOIN
s, nhưng vì tôi sẽ không viết mã có dấu phẩy trong FROM
, tôi sẽ để bài tập đó cho bạn.
Trong thực tế, id được sử dụng cho các phép nối phải cùng loại. Bạn thậm chí không thể khai báo mối quan hệ khóa ngoại nếu chúng không có. Bỏ qua phương pháp hay nhất đó, hai truy vấn không tự động tương đương nhau.
Lưu ý:Điều này sẽ đúng nếu bạn sử dụng đúng, rõ ràng, tiêu chuẩn JOIN
cú pháp mà tôi đặc biệt khuyến khích bạn nên tìm hiểu và sử dụng riêng.