Мне было трудно придумать заголовок для этого вопроса, потому что я не совсем уверен, как делать то, что я хочу, поэтому я не уверен, является ли «объединение» лучшей терминологией в этом случае.
У меня есть две таблицы в моей базе данных, планы и предположения, которые выглядят следующим образом:
Таблица планов
Plankey ass1 ass2 ass3 ass4
aplan 0 6 5 7
bplan 2 0 7 4
Таблица допущений
assType refKey assName
"ass1" 0 "gender factors a"
"ass1" 2 "gender factors b"
"ass2" 0 "age factors a"
"ass2" 6 "age factors b"
"ass3" 5 "inflation factors a"
"ass3" 7 "inflation factors b"
"ass4" 4 "tax factors a"
"ass4" 7 "tax factors b"
Мне нужно сделать запрос (или набор запросов и подзапросов), который дает мне названия предположений, используемых для каждого плана:
Plankey assName1 assName2 assName3 assName4
aplan "gender factors a" "age factors b" "inflation factors a" "tax factors b"
bplan "gender factors b" "age factors a" "inflation factors b" "tax factors a"
Да ... я знаю. assName. Кроме того, даже если это не лучший дизайн, это вне моего контроля. Я просто пытаюсь запросить существующий набор данных.
Я должен также упомянуть, что существует более 500 типов предположений (ass1, ass2, ..., ass500 и т. Д.), И каждый тип может иметь более 100 предположений refKey / Names на тип предположения.
Я пытаюсь обернуть голову вокруг этого, и это кажется легким, но я просто не могу понять, как это сделать. Есть идеи? Может быть, я пропускаю концепцию, потому что просто еще не сталкивался с ней. Я в порядке с жестким кодированием имен столбцов assName1, assName2 и т. Д. В моем запросе, но даже тогда я не уверен, как «искать» assNames из таблицы предположений, когда мне кажется, что я смотрю из одной и той же таблицы для нескольких столбцы в моем результате.
РЕДАКТИРОВАТЬ: я пропустил что-то действительно важное. refkey повторно используется в таблице предположений. Таким образом, assName однозначно определяется комбинацией assType и refKey. Я прошу прощения за то, что не разъяснил это в моем примере! Я забыл об этом, пока не посмотрел на ответы. Я изменил свой пример, чтобы отразить это также.
EDIT2: я использую MS SQL Server.
EDIT3: я ожидаю найти совпадение в таблице предположений для каждого плана. Если нет, то у меня были бы большие проблемы, хотя и не связанные с этим вопросом.