sql >> Database teknologi >  >> RDS >> Sqlserver

Spørg eksempler i et mange-til-mange forhold

Den første ting, jeg vil gøre, er at anbefale at bruge en ORM som Linq-To-Sql eller NHibernate som vil give dig objektrepræsentationer af din datamodel, som gør det meget nemmere at håndtere komplekse ting som mange-til-mange CRUD-operationer.

Hvis en ORM ikke er en del af dit værktøjssæt, så her er, hvordan det ville se ud i SOL.

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

Vores borde er samlet på denne måde:

   Users.Id -> UserAddresses.UserId
   Addresses.Id -> UserAddresses.AddressId
  • Alle poster i Brugere baseret på 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 poster i adresser baseret på 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. mysql dato klokkeslæt format ved hjælp af c#

  2. Hvordan kan jeg foretage en migrering i laravel 5.5?

  3. Kan ikke installere mysql-python (nyere versioner) i Windows

  4. deltage med opslag og gruppeby