Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Przykłady zapytań w relacji wiele do wielu

Pierwszą rzeczą, którą chciałbym zrobić, to zalecić użycie ORM, takiego jak Linq-To-Sql lub NHibernate co da ci reprezentacje obiektowe twojego modelu danych, co znacznie uprości obsługę złożonych rzeczy, takich jak operacje CRUD wiele-do-wielu.

Jeśli ORM nie jest częścią twojego zestawu narzędzi, oto jak wyglądałoby to w SOL.

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

Nasze stoły są połączone w następujący sposób:

   Users.Id -> UserAddresses.UserId
   Addresses.Id -> UserAddresses.AddressId
  • Wszystkie rekordy w użytkownikach na podstawie 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)
  • Wszystkie rekordy w adresach na podstawie User.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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepsze podejście do obliczania sum — aktualizacja dla SQL Server 2012

  2. Używasz XQuery w Linq To SQL?

  3. Zapytanie pobierające 12-15 GB danych z ponad 120 tabel

  4. Czy można dodawać języki do sys.syslanguages ​​w SQL Server 2008?

  5. Zrozumienie blokad SQL Server w zapytaniach SELECT