sql >> Base de Datos >  >> RDS >> Sqlserver

Ejemplos de consulta en una relación de muchos a muchos

Lo primero que haría es recomendar usar un ORM como Linq-To-Sql o NHibernate lo que le brindará representaciones de objetos de su modelo de datos que simplifican mucho el manejo de cosas complejas como operaciones CRUD de muchos a muchos.

Si un ORM no es parte de su conjunto de herramientas, así es como se vería en SOL.

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

Nuestras tablas se unen así:

   Users.Id -> UserAddresses.UserId
   Addresses.Id -> UserAddresses.AddressId
  • Todos los registros en Usuarios basados ​​en Direcciones.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)
  • Todos los registros en Direcciones basados ​​en 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)