0

J'utilise SQL Server et j'ai une requête avec jointure multiple.Ordre de jointure SQL Server

Je veux que la table se joindre à SQL Server A et B d'abord, puis se joindre à la table C.

mais jointure de table SQL Server B et C en premier et ensuite se joindre à la table A.

Comment Je force SQL Server à observer mon ordre de jointure.

Merci d'avance.

+0

si vous ne vous dérange pas que je peux vous demander pourquoi vous voulez que, pour une raison particulière ou tout simplement une curiosité? P.S Optimizer choisit généralement le meilleur ordre pour joindre la table –

Répondre

2

Vous pouvez utiliser l'indicateur de requête FORCE ORDER.

De Query Hints (Transact-SQL)

Indique que l'ordre de jointure indiqué par la syntaxe de requête est conservée lors de l'optimisation des requêtes.

+0

Et tandis que cela répond à la question, il est généralement difficile de comprendre comment les jointures fonctionnent sur l'utilisateur. -1 ^. – TomTom

-1

L'ordre d'assemblage est le même que celui que vous donnez dans une requête de sélection.

Aucune logique de force ici, seul l'ordre que vous donnez et la condition de colonne de joint filtrera les données.

Si vous attribuez une valeur de clé primaire ou de clé composite dans la clause de jointure plutôt que très bonne. Si vous utilisez une table de transaction 2, puis une jointure avec la table principale, vous avez un problème.

Toujours utiliser d'abord la table principale ou la table principale, puis ajouter la table secondaire une par une.

Vous pouvez vérifier le plan d'exécution.

enter image description here

+2

Cette réponse n'est pas correcte, mais elle possède une jolie image dont la source devrait être reconnue. –