Question

Récemment, un collègue m'a dit qu'il n'était pas conseillé de faire des conditions dans le Rejoignez les clauses. Au lieu de cela, il a suggéré de faire des conditions dans le où la clause. Il m'a dit que le moteur SQL avait été optimisé pour cette manière.

Voici un exemple simple pour illustrer ma question. Dans ce cas, je pense que cela ferait une différence.

Quelle stratégie est la meilleure? Et pourquoi?

Supposons que nous avons un paramètre Nammé @user_id.

Première stratégie

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

Deuxième stratégie

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

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top