在 JOIN 子句或 WHERE 子句中有 SQL 条件更好吗?SQL 引擎是否针对任何一种方式进行了优化?它取决于发动机吗?
是否总是可以用 WHERE 子句中的条件替换 JOIN 子句中的条件?
这里的例子来说明我对条件的意思
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