У меня есть две таблицы, такие как:
Документы {#DocId, SomeData} KeyValues {#RowId, DocId, Name, Value}
, и они имеют значения, такие как:
Документы
D1 | This is content of doc 1
D2 | This is content of doc 2
Ключевые значения
1 | D1 | Firstname | David
2 | D1 | Lastname | Andersson
3 | D2 | Firstname | Anders
4 | D2 | Lastname | Andersson
Я хотел бы получить Doc.SomeData и заказать позначение Firstname
Как бы вы это сделали?Pivot?Joins?
EDITED Я мог бы упростить многое.Таблица KeyValue имеет значение, разделенное на несколько столбцов, но фактический столбец для получения значения определен в коде C #, где SQL генерируется на лету:
KeyValues {#RowId, DocId, Name, StringValue,IntegerNumericValue, FractalNumericValue, BoolValue, GuidValue, DateTimeValue}
Использование левых объединений потребовало бы от меня одного левого соединения для каждого выражения сортировки, в противном случае набор может получить дублирование документов в результате.