sql >> Database >  >> RDS >> Sqlserver

Queryvoorbeelden in een veel-op-veel-relatie

Het eerste wat ik zou doen, is het gebruik van een ORM aanbevelen zoals Linq-To-Sql of NHibernate waarmee u objectrepresentaties van uw gegevensmodel krijgt, waardoor het veel eenvoudiger wordt om complexe zaken zoals veel-op-veel CRUD-bewerkingen af ​​te handelen.

Als een ORM geen deel uitmaakt van uw gereedschapsset, ziet dit er als volgt uit in SOL.

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

Onze tabellen zijn als volgt samengevoegd:

   Users.Id -> UserAddresses.UserId
   Addresses.Id -> UserAddresses.AddressId
  • Alle records in Gebruikers op basis van 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)
  • Alle records in Adressen op basis van 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)


  1. Variabelen gebruiken als OFFSET in SELECT-statments in de opgeslagen functies van mysql

  2. Een inleiding tot tijdreeksdatabases

  3. Slaapstand-sessie kan niet worden geopend voor transactie

  4. 3 updates gebruiken in dezelfde winkel Procedure? Kleine fout