SQL Server, присоединиться к более чем одной таблице с одним и тем же столбцом - PullRequest
0 голосов
/ 27 февраля 2019

Используя сервер 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 ]

0 голосов
/ 27 февраля 2019

Если я правильно понимаю, вы пытаетесь использовать один столбец для ссылки на первичные ключи 2 разных таблиц.Я считаю, что подход называется polymorphic associations.Концепция верна, но использование вашего решения для ее реализации - не лучший способ. Вот еще несколько способов сделать это.

0 голосов
/ 27 февраля 2019

Я думаю, вы хотите что-то вроде этого:

Select *
FROM Mytable AS myt
RIGHT JOIN TableOne AS tb1 ON myt.SourceId = tb1.ID

SELECT *
FROM MyTable AS myt
RIGHT JOIN TableTwo AS tb2 ON myt.SourceId = tb2.ID

Более подробную информацию вы можете найти здесь: https://www.w3schools.com/sql/sql_join.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...