Data flow · Thứ tự xử lý mệnh đề

Điều kiện ở WHERE hay ở ON

Điều kiện ở WHERE hay ở ON kh và dh đi qua hai đường. Đặt d.tong > 400 ở WHERE: LEFT JOIN ra 4 dòng với dòng Chi mang NULL, rồi WHERE tính NULL > 400 thành UNKNOWN và loại dòng Chi, còn 2 dòng. Đặt điều kiện trong ON: LEFT JOIN giữ Chi với NULL, không có WHERE nào lọc thêm, ra 3 dòng. BƯỚC 1 · FROM + JOIN … ON BƯỚC 2 · WHERE KẾT QUẢ ĐIỀU KIỆN ĐẶT Ở WHERE ĐIỀU KIỆN ĐẶT Ở ON KHÔNG CÓ WHERE kh + dh3 khách · 3 đơn LEFT JOINON d.kh_id = k.idra 4 dòng · Chi: d.* = NULL WHERE d.tong > 400NULL > 400 → UNKNOWNdòng của Chi bị loại 2 dòngAn 500 · Binh 700Chi biến mất LEFT JOINON d.kh_id = k.idAND d.tong > 400 3 dòngAn 500 · Binh 700Chi · NULL CHÚ GIẢI Thứ tự xử lý logic Mệnh đề Kết quả mất dòng Kết quả đúng ý định © tiennhm