Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Ví dụ về truy vấn trong mối quan hệ nhiều-nhiều

Điều đầu tiên tôi sẽ làm là khuyên bạn nên sử dụng ORM như Linq-To-Sql hoặc NHibernate điều này sẽ cung cấp cho bạn các biểu diễn đối tượng của mô hình dữ liệu của bạn, giúp việc xử lý những thứ phức tạp như nhiều đến nhiều CRUD trở nên đơn giản hơn nhiều.

Nếu ORM không phải là một phần của bộ công cụ của bạn thì đây là cách nó trông như thế nào trong SOL.

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

Các bảng của chúng ta được nối như thế này:

   Users.Id -> UserAddresses.UserId
   Addresses.Id -> UserAddresses.AddressId
  • Tất cả các bản ghi trong Người dùng dựa trên Địa chỉ.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)
  • Tất cả các bản ghi trong Địa chỉ dựa trên Người dùng.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. Đăng nhập không thành công cho người dùng khi chỉ định cổng mặc định

  2. Cập nhật dữ liệu thông qua một hàm có giá trị bảng trong SQL Server

  3. Gói bất kỳ câu lệnh SQL Server 2008 nào bằng toán tử bỏ qua / lấy

  4. Cách xem nhật ký giao dịch trong SQL Server 2008

  5. Tránh 4 sai lầm DBA phổ biến này