SQL Server,连接到具有相同列的多个表

标签 sql sql-server database

使用 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 个不同表的主键。我相信这种方法称为多态关联。这个概念是有效的,但使用您的解决方案来实现它并不是最好的方法。 Here's some other ways to do it.

关于SQL Server,连接到具有相同列的多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54912697/

相关文章:

sql - 如何计算共享一个值的行结果集的差异?

sql - 使用 SQL 搜索字符串中的单词数

sql-server - 如何知道我使用的是 Azure SQL 数据库还是 Azure SQL 数据仓库?

mysql - 将wordpress部署到服务器会破坏主题

mysql - 将字段值和 ID 链接到另一个表?

sql - 数据库不区分大小写索引?

sql - 关于 having 子句的 Postgresql 奇怪结果

sql-server - 在数据库表中使用排序顺序列

sql - 连接到 Azure 托管的 SQL Server Analysis Services 服务器的表格实例

database - 如何在数据库应用程序中实现版本控制?