У меня есть две таблицы:
T1:
| M_ID | P_ID1 | P_ID2 | rest of T1 columns |
| 0 | 0 | 1 | ... |
| 1 | 2 | 3 | ... |
Т2:
| P_ID | Type | A | B |
| 0 | 1 | a | e |
| 1 | 2 | b | f |
| 2 | 1 | c | g |
| 3 | 2 | d | h |
Теперь я хочу запрос, который выбирает это:
| M_ID | P_1a | P_1b | P_2a | P_2b | rest of T1 columns |
| 0 | a | e | b | f | ... |
| 1 | c | g | c | h | ... |
Итак, на словах: я хочу выбрать все столбцы из T1, но я хочу заменить P_ID1 столбцами из T2, где P_ID равен P_ID1, а тип равен 1, и в основном то же самое для P_ID2.
Очевидно, я могу получить необходимую информацию с помощью нескольких запросов, но мне было интересно, есть ли способ сделать это одним запросом. Есть идеи?
В настоящее время я использую SQL Server 2008r2, но мне также будут интересны решения для другого программного обеспечения для баз данных.
Спасибо за помощь!