sql-server-2005 – 以多对多关系查询示例
发布时间:2020-12-12 08:42:26 所属栏目:MsSql教程 来源:网络整理
导读:哇,很难找到一个简单的解释这个话题.一个简单的多对多关系. 三个表,tableA,tableB和一个连接表A_B. 我知道如何使用键和所有设置关系,但是当时间到来执行INSERT,UPDATE和DELETE查询时,我有点困惑… 基本上,我正在寻找的是一个例子,显示: 如何根据TableB中的ID
哇,很难找到一个简单的解释这个话题.一个简单的多对多关系.
三个表,tableA,tableB和一个连接表A_B. 我知道如何使用键和所有设置关系,但是当时间到来执行INSERT,UPDATE和DELETE查询时,我有点困惑… 基本上,我正在寻找的是一个例子,显示: >如何根据TableB中的ID获取TableA中的所有记录 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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |