首页 > 解决方案 > 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';

我需要对此做一些研究。这种方法叫什么?

标签: sqlsql-serverdatabase

解决方案


如果我理解正确,您正在尝试使用一列来引用 2 个不同表的主键。我相信这种方法被称为polymorphic associations. 这个概念是有效的,但使用您的解决方案来实现它并不是最好的方法。这里有一些其他的方法来做到这一点。


推荐阅读