2010-10-13 1 views
2

Quelle est la meilleure façon d'écrire une instruction select avec deux tables ayant une relation un à plusieurs?Aide avec une instruction select avec une relation un à plusieurs

J'ai une table appelée courtier avec ces champs

id companyname 

puis une autre table appelée brokerContact qui a une clé étrangère à la table des courtiers avec ces champs

id brokerid contact name phone 

Comment puis-je écrire un select déclaration qui obtiendra tous les enregistrements de la brokertable ainsi que tous les brokercontacts pour chaque courtier, sans sélectionner tous les courtiers dans mon code C# alors enuerating sur eux pour obtenir le brokerContacts pour chacun, ou est-ce le seul moyen?

Si cela n'a pas de sens ou si des précisions supplémentaires sont nécessaires, faites-le moi savoir. Merci

aussi, ce sera dans une procédure stockée

Répondre

4

Pour obtenir tous les enregistrements de la table Broker, ainsi que tous les BrokerContacts, vous pouvez utiliser une INNER JOIN:

SELECT B.ID 
     ,B.companyname 
     ,BC.ID 
     ,BC.contact 
     ,BC.[name], 
     ,BC.phone 
FROM Broker AS B 
INNER JOIN BrokerContact AS BC ON BC.BrokerID = B.ID 
ORDER BY B.companyname 

Si vous avez plusieurs contacts, vous verrez une ligne pour chaque contact, avec le companyname répété.

+0

Je pense que cela fonctionnera pour moi! Je vous remercie! Je savais qu'il devait y avoir un moyen plus simple que ce que je pensais. – twal