哇,很难找到一个简单的解释这个话题.一个简单的多对多关系.
三个表,tableA,tableB和一个连接表A_B.
我知道如何使用键和所有设置关系,但是当时间到来执行INSERT,UPDATE和DELETE查询时,我有点困惑…
基本上,我正在寻找的是一个例子,显示:
>如何根据TableB中的ID获取TableA中的所有记录
>如何根据TableA中的ID获取TableB中的所有记录
3如何在TableA或TableB中进行INSERT,然后在连接表中进行相应的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)