Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Exemples de requêtes dans une relation plusieurs-à-plusieurs

La première chose que je ferais est de recommander d'utiliser un ORM comme Linq-To-Sql ou NHibernate qui vous donnera des représentations d'objets de votre modèle de données, ce qui simplifiera beaucoup la gestion de choses complexes comme les opérations CRUD plusieurs-à-plusieurs.

Si un ORM ne fait pas partie de votre ensemble d'outils, voici à quoi cela ressemblerait dans SOL.

Users       UserAddresses     Addresses
=======     =============     =========
Id          Id                Id
FirstName   UserId            City
LastName    AddressId         State
                              Zip

Nos tables sont jointes comme ceci :

   Users.Id -> UserAddresses.UserId
   Addresses.Id -> UserAddresses.AddressId
  • Tous les enregistrements dans Utilisateurs basés sur Addresses.Id
SELECT        Users.*
FROM            Addresses INNER JOIN
                         UserAddresses ON Addresses.Id = UserAddresses.AddressId INNER JOIN
                         Users ON UserAddresses.UserId = Users.Id
WHERE        (Addresses.Id = @AddressId)
  • Tous les enregistrements dans les adresses basés sur Users.Id
SELECT        Addresses.*
FROM            Addresses INNER JOIN
                         UserAddresses ON Addresses.Id = UserAddresses.AddressId INNER JOIN
                         Users ON UserAddresses.UserId = Users.Id
WHERE        (Users.Id = @UserId)