sql - SQL Server,连接到具有相同列的多个表
问题描述
使用 SQL 服务器,我有一个可以使用同一列连接多个表的表。该表有两列,SourceType 和 SourceID。SourceType 是要加入的表,SourceID 是我们加入的表的主键。这会产生如下查询:
select *
from MyTable join TableOne
where MyTable.SourceId = TableOne.ID
and MyTable.SourceType = 'TableOne';
select *
from MyTable join TableTwo
where MyTable.SourceId = TableOne.ID
and MyTable.SourceType = 'TableTwo';
我需要对此做一些研究。这种方法叫什么?
解决方案
如果我理解正确,您正在尝试使用一列来引用 2 个不同表的主键。我相信这种方法被称为polymorphic associations
. 这个概念是有效的,但使用您的解决方案来实现它并不是最好的方法。这里有一些其他的方法来做到这一点。
推荐阅读
- javascript - Javascript 正则表达式函数“测试”在内部 js 中工作,但在外部 js 文件中不起作用
- svg - 如何在 Sharepoint Online Modern Pages 中的 SVG 图像中获取可点击的 HREF 标签
- scala - Scala编译错误:方法参数的成员对类方法不可见
- reactjs - 构建 React 项目后如何设置节点环境变量(运行时)?
- angular - automl 将数据导入数据集 发现错误列表: 1.Field: name; 消息:必填字段无效
- ruby-on-rails - 在#destroy 失败时响应@model:将@model.errors[:base] 附加到闪存?
- html - 如何阻止移动 CSS 被主 CSS 覆盖
- php - 从 laravel 控制器中的请求值创建适当的数组
- python - 如何使用 python PIL ImageFont.truetype()?
- html - 纯 CSS:选择具有 n 个或更多兄弟元素的元素