Если у меня есть 4 стола (армия, военно-морской флот, военно-воздушные силы, морские пехотинцы), все они имеют серийный номер в качестве первичного ключа и имя. И у меня есть операция таблицы, которая имеет op_num в качестве первичного ключа и op_name. У меня также есть элемент операции таблицы, который связывает таблицу операций с другими четырьмя таблицами, как я могу написать один оператор SQL, вернуть имена членов (независимо от ветви службы) скрытой операции «Буря в пустыне» с помощью Microsoft Синтаксис SQL?Ассоциативная таблица в SQL Server
У меня есть этот
SELECT Soldier.Name FROM Operation_Member
INNER JOIN Operation
ON Operation.op_num = Operation_Member.op_num
INNER JOIN
(
SELECT ser_num, name FROM Army
UNION ALL
SELECT ser_num, name FROM Navy
UNION ALL
SELECT ser_num, name FROM Air_Force
UNION ALL
SELECT ser_num, name FROM Marines
) Soldier
ON Soldier.ser_num = Operation_Member.ser_num
WHERE Operation.op_name = 'Desert Storm'
Но это не будет работать, если серийный номер не является уникальным для всех четырех таблиц услуг. Есть ли способ сделать это, чтобы убедиться, что он работает с этим условием?
Последующие [этой] (http://stackoverflow.com/questions/36613802/associative-table-in-sql-server) – Arulkumar