Мне нужно выбрать данные из двух таблиц, используя соединение. Это довольно просто и здесь нет проблем. Проблема возникает, когда поле, к которому я присоединяюсь, используется как два отдельных внешних ключа (я не проектировал это). Поэтому поле идентификатора, к которому я присоединяюсь, является либо положительным, либо отрицательным числом.
Если это положительное число, оно относится к ID_1 в таблице table_2, если оно отрицательное, число относится к ID_2 в таблице table_2. Однако ID_2 будет положительным числом (даже если оно хранится как отрицательный во внешнем ключе). Очевидно, что нет никаких ограничений для их применения - поэтому, по сути, это не настоящие внешние ключи: /
Используемый мной SQL-код выглядит примерно так и подходит для положительных чисел:
select t1.Stuff, t2.MoreStuff from table_1 t1
join table_2 t2 on t1.ID_1 = t2.ID_1
where ...
Как включить отрицательный аспект этого в объединение. Это вообще возможно? В идеале я хотел бы изменить таблицу в соответствии с моими потребностями, но, видимо, это недопустимый вариант. Я хорошо и действительно застрял.
Единственная другая идея, которая у меня возникла, - это отдельный SQL-оператор для обработки этих нечетных. Это все выполняется clr sql из C #. Добавление отдельной SqlCommand в код, скорее всего, замедлит процесс, поэтому я бы предпочел хранить все это в одной команде.
Ваш вклад приветствуется, спасибо:)