2010-11-05 7 views
1

Si on m'avait demandé d'interroger JOIN sur plus de trois tables, quelle est la meilleure façon de comprendre la relation entre les tables avant le code. Dois-je utiliser le diagramme de base de données dans SQL Server ou aurais-je les informations nécessaires? Que recommanderais-tu?Question générale sur SQL - JOINS

Merci d'avance pour votre temps.

+0

Je ne comprends pas votre question. – Oded

+0

Par exemple je regardais l'exercice dans Apress Beginning T-SQL 2008, page 125 pour AdventureWorks2008RS db. Question posée, écrivez une requête qui affiche les noms des clients ainsi que les noms de produits qu'ils ont achetés. Astuce: 5 tables seront nécessaires pour écrire cette requête. Il y a beaucoup de tables, évidemment, vous ne pouvez pas passer par chaque table pour comprendre comment une table peut se rapporter à une autre table, donc je demande quelle serait la meilleure façon de comprendre quelles tables sont liées? – DiscoDude

Répondre

1

Vous pouvez utiliser les outils de création de diagrammes dans SQL Server Management Studio pour découvrir les relations de clé étrangère entre ces tables. Il peut être plus rapide que d'utiliser l'interface graphique pour inspecter chaque table en mode Création et afficher sa boîte de dialogue Relations. Envisagez de créer une vue ad hoc avec ces 3 tables.

Cela vous aidera à produire l'instruction SQL dont vous avez besoin. Si des relations existent sur ces 3 tables, l'instruction JOIN sera créée pour vous par l'outil.

  • Clic droit Vues -> Nouvelle vue.
  • Sélectionnez les tables dont vous avez besoin, cliquez sur Ajouter
  • toutes les relations sont affichées dans le volet Diagramme et le volet SQL sera l'instruction SELECT avec les JOINS requises.

alt text

+0

merci pour les conseils – DiscoDude

1

Selon la convention qu'ils utilisent pour créer des clés étrangères, il ne devrait pas être à difficile de trouver les relations entre les tables.

La convention que nous utilisons est

dbo.TableA(ID PK) 
dbo.TableB(ID PK, TableAID FK) 
dbo.TableC(ID PK, TableBID FK) 
... 

S'ils n'utilisent une convention du tout ou ne même pas créer des contraintes clés étrangères, vous pouvez prendre cela comme une occasion de les sensibiliser à l'importance de conventions alias le temps perdu et l'argent en ne les utilisant pas.

+0

merci pour le conseil – DiscoDude