Как я достигну ниже требования с SQL-запросом - PullRequest
0 голосов
/ 19 мая 2019

У меня есть следующие таблицы

table1

table1_id        name      
1                abc          
2                cde            
3                efg           

table2

table2_id(fkey)     value
  1                 10
  2                 19
  3                 50

здесь таблица 2 ссылок на внешние ключи таблица 1 для идентификатора. Я хочу следующий формат строки, когда я запрашиваю 6:10,8:19,5:50

выше 6,8 и 5 - это константы (жестко запрограммированные), определенные мной, где 10, 19,50 - это значения, которые я получаю на основе столбца имени таблицы table1

i, e: чтобы получить значение для ключа 6 в строке:>

select table2.value by join 2 table on id where name="abc"

следующий: получить значение для ключа 8 можно с помощью>

select table2.value join 2 table on id where name="cde" 

и т. Д.

1 Ответ

0 голосов
/ 19 мая 2019

Вы, кажется, хотите что-то вроде этого:

select stuff( (select concat(',', v.val, ':', t2.value)
               from table2 t2 join
                    table1 t1
                    on t2.table2_id = t1.table1_id join
                    (values ('abc', 6), ('cde',8 ), ('efg', 5)
                    ) v(name, val)
                    on v.name = t1.name
               for xml path ('')
              ), 1, 1, '')

Подзапрос без for xml path создает пары, которые вы хотите. for xml path используется только для агрегирования строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...