Als erstes würde ich empfehlen, ein ORM wie Linq-To-Sql zu verwenden oder NHibernate Dadurch erhalten Sie Objektdarstellungen Ihres Datenmodells, die es viel einfacher machen, komplexe Dinge wie Many-to-Many-CRUD-Operationen zu handhaben.
Wenn ein ORM nicht Teil Ihres Toolsets ist, dann würde dies in SOL so aussehen.
Users UserAddresses Addresses ======= ============= ========= Id Id Id FirstName UserId City LastName AddressId State Zip
Unsere Tabellen sind wie folgt verbunden:
Users.Id -> UserAddresses.UserId Addresses.Id -> UserAddresses.AddressId
- Alle Datensätze in Benutzern basierend auf 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 Datensätze in Adressen basierend auf 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)