Trong các trường hợp thông thường, các điều kiện lọc có thể được chỉ định trong các mệnh đề WHERE hoặc THAM GIA. Tôi có xu hướng đặt các bộ lọc trong WHERE trừ khi ưu tiên OUTER THAM GIA có thể bị ảnh hưởng (xem bên dưới) hoặc nếu bộ lọc rất cụ thể cho bảng đó (ví dụ TYPE = 12 để chỉ định một tập hợp con cụ thể của các hàng trong bảng).
Mặt khác, cả hai mệnh đề ON và WHERE đều có thể được sử dụng để chỉ định các điều kiện nối (trái ngược với các điều kiện lọc). Miễn là bạn chỉ sử dụng INNER tham gia, việc bạn sử dụng trong các trường hợp thông thường vẫn không thành vấn đề.
Tuy nhiên, nếu bạn đang sử dụng tham gia OUTER, nó có thể tạo ra sự khác biệt lớn. Ví dụ: nếu bạn chỉ định OUTER THAM GIA giữa hai bảng (t1 và t2) nhưng sau đó, trong mệnh đề WHERE, hãy tiếp tục chỉ định mối quan hệ eqijoin giữa các bảng (ví dụ: t1.col = t2.col), bạn vừa đã chuyển đổi tham gia OUTER thành tham gia INNER! Điều này là do WHERE có thể được sử dụng để chỉ định một Equijoin (hoặc thậm chí có thể tham gia OUTER, tùy thuộc vào phiên bản, sử dụng cú pháp * = không dùng nữa) mà không sử dụng mệnh đề ON và khi WHERE chỉ ra một đẳng thức bên trong giữa các bảng, nó sẽ ghi đè OUTER THAM GIA (nếu có).
Câu hỏi ban đầu là về các bộ lọc, trong đó loại tham gia thường không phải là vấn đề, nhưng tham gia cũng có thể hoạt động như một bộ lọc và trong những tình huống đó, vị trí của điều kiện tham gia chắc chắn có thể quan trọng.