У меня есть таблица, используемая одним программным обеспечением сторонних производителей (скажем, user_fields), в котором для каждой строки есть user_id, field_id и field_value. Дерьмо я знаю.
У меня также есть другая собственная таблица пользователей, users, которая содержит значения, необходимые для ее заполнения, за исключением field_id, который является «волшебным» и соответствует сопоставлению настраиваемого поля.
Как мне написать запрос на выборку, который превратит это:
user_id | company_name | first_name | country
---------------------------------------------------
1 | Nutty Choc Company | Si | GB
2 | Ljubljanske R Us | Pie | IT
В это?
user_id | field_value | field_id
---------------------------------------
1 | Nutty Choc Company | 10
1 | Si | 11
1 | GB | 12
2 | Ljubljanske R Us | 10
2 | Pie | 11
2 | IT | 12
Я использую Postgresql 8.4 и намереваюсь вставить запрос для вставки.
У меня был удар с помощью unnest и массива, чтобы развернуть поля в строки, но он отменяется после обработки любого другого поля в select, и поэтому просто дублирует значение для неотнесенных строк.
Есть идеи?
Ура,
Si
РЕДАКТИРОВАТЬ: форматирование и уточнение, что изворотливая таблица значений имен является третьей стороной.