加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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中的所有记录
>如何根据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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读