Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
super10
Guest |
нет ли какого способа не делать еще 10 соединений для декодирования? в соединении участвуют 10 таблиц, в каждой из которых есть person_id. собирается добро из всех 10 таблиц, но надо в каждой из них вместо person_id вывести фио. получается, что еще 10 раз надо присоединить таблицу PERSON (person_id, фио), а она и есть самая здоровая. как-то бы хотелось декодировать всего 1 раз, можно ли это как-то осуществить? вот пример, где 3 таблицы. но вообще их 10. declare @t1 table (person_id int, col1 varchar(1)) insert into @t1 values(11, 'a'), (12, 'b') declare @t2 table (person_id int, col2 varchar(1)) insert into @t2 values(21, 'b'), (22, 'c') declare @t3 table (person_id int, col3 varchar(1)) insert into @t3 values(31, 'd'), (32, 'b') declare @person table(person_id int, fio varchar(100)) insert into @person values(11, 'Ivanov'), (12, 'Petrov'),(21, 'Sidorov'), (32, 'Kakashkin') select p1.fio, t1.col1, p2.fio, t2.col2, p3.fio, t3.col3 from @t1 t1 left join @t2 t2 on t1.col1 = t2.col2 left join @t3 t3 on t1.col1 = t3.col3 left join @person p1 on t1.person_id = p1.person_id left join @person p2 on t2.person_id = p2.person_id left join @person p3 on t3.person_id = p3.person_id |
20 июл 12, 16:21 [12894252] Ответить | Цитировать Сообщить модератору |
HandKot Member Откуда: Sergiev Posad Сообщений: 3015 |
как вариант выбирите сначала все из 10 таблиц, а потом к общему результату джойните PERSON |
20 июл 12, 16:23 [12894266] Ответить | Цитировать Сообщить модератору |
super10
Guest |
HandKot, так у меня же 10 разных колонок, к которым джойнить. или имелось в виду собрать все из 10 колонок в 1 колонку(типа unpivot), к ней присоединить PERSON, а потом снова pivot? |
20 июл 12, 16:35 [12894341] Ответить | Цитировать Сообщить модератору |
HandKot Member Откуда: Sergiev Posad Сообщений: 3015 |
как-то так и потом проверить, будет ли это быстрее, чем 10 обычных лефт джойнов |
23 июл 12, 08:51 [12900394] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |