JOIN 句または WHERE 句に SQL 条件を含める方が良いですか? SQL エンジンはどちらの方法でも最適化されていますか? エンジンにもよる?
JOIN 句の条件を WHERE 句の条件に置き換えることは常に可能ですか?
条件の意味を説明するための例
SELECT role_.name
FROM user_role
INNER JOIN user ON user_role.user_id_ = user.id AND
user_role.user_id_ = @user_id
INNER JOIN role ON user_role.role_id = role_.id
対。
SELECT role_.name
FROM user_role
INNER JOIN user ON user_role.user_id_ = user.id
INNER JOIN role ON user_role.role_id = role_.id
WHERE user.id = @user_id