【发布时间】:2018-05-22 19:52:06
【问题描述】:
我有这两张桌子:
表1:
IDt1 | XML
1123 xml
1457 xml
表2:
ID | Name | XML
01 A xml
02 B xml
我想在 table1 XML 中搜索,如果数据存在,则使用 IDt1 并在 table2 XML 中搜索,如果存在,然后从 table2 返回 ID 和名称 这是每个表的 XML。
表 1 xml:
<t>
<ts>
<sc>
<rn>445</rn>
<am>Name1</am>
</sc>
<sc>
<rn>555/rn>
<am>Name2</am>
</sc>
</ts>
</t>
表 2 xml:
<t>
<ts>
<d>
<n>01123</n>
</d>
<d>
<n>04344</n>
</d>
</ts>
</t>
我想要的数据:
ID | Name
01 a
我能够从表 1 中检索包含我要查找的内容的 ID,但后来我无法使用这些 ID 在其他 xml 中进行搜索。 这是我所拥有的:
SELECT IDt1 as table1IDs
FROM [Table1]
WHERE [XML].exist ('/t/ts/sc/am[contains(., "Name1")]') > 0
它返回一个包含 Name1 的 ID 表,现在问题是如何使用 ID 并在 table2 的 xml 中搜索它们,然后返回 table2 的名称和 ID 现在的问题是我必须使用不能接受变量的 xml.exist [contain table1IDs]
有没有办法做到这一点?
【问题讨论】:
-
感谢您简化的示例和您自己的努力,我这边 +1!
标签: mysql sql sql-server xml select