sql-server-2005 – 以多对多关系查询示例
发布时间:2020-05-27 20:59:40 所属栏目: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)
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
