哇,很难找到这个主题的简单解释.一个简单的多对多关系.
三个表,tableA,tableB和一个联结表A_B.
我知道如何使用密钥和所有设置关系,但是当执行INSERT,UPDATE和DELETE查询时,我会感到有些困惑....
基本上,我正在寻找的是一个示例,显示:
如何根据TableB中的ID获取TableA中的所有记录
如何根据TableA中的ID获取TableB中的所有记录
3如何在TableA或TableB中插入,然后在联结表中进行相应的INSERT以建立连接.
我不是在寻找特定项目的解决方案,只是可以应用的一些常规示例.也许你有什么东西躺在身边?
我要做的第一件事是建议使用像Linq-To-Sql或NHibernate这样的ORM ,它将为您提供数据模型的对象表示,这使得处理复杂事物(如多对多CRUD操作)变得更加简单.
如果ORM不是您工具集的一部分,那么这就是SOL的外观.
Users UserAddresses Addresses ======= ============= ========= Id Id Id FirstName UserId City LastName AddressId State Zip
我们的表连接如下:
Users.Id -> UserAddresses.UserId Addresses.Id -> UserAddresses.AddressId
基于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)
基于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)