我有以下表格
table1
table1_id name
1 abc
2 cde
3 efg
table2
table2_id(fkey) value
1 10
2 19
3 50
此处,表2外键引用表1中的id。我查询6:10,8:19,5:50
6,8和5上方是我定义的常量(可以硬编码),其中10、19,50是我根据表1的名称列接收的值
i,e:获取字符串中键6的值:>
select table2.value by join 2 table on id where name="abc"
next:通过>
获取键8的值select table2.value join 2 table on id where name="cde"
以此类推
答案 0 :(得分:0)
您似乎想要这样的东西:
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
仅用于字符串聚合。