Мне нужна ваша помощь, чтобы решить эту проблему. У меня есть xml, и мне нужно получить 2 атрибута, первый атрибут может иметь много дочерних атрибутов. Мне нужно получить всех детей, но с его родительским атрибутом.
У XML есть много родительских уровней, но я показываю только то, что мне интересно.
<group name="Name 1">
<subgroup target="30" show="true">
<subgroup step="0" key="342d8743cd43db67240ad88be462b5ee"/>
<subgroup step="2" key="342d8743cd43db67240ad88be462b5ee"/>
<subgroup step="5" key="342d8743cd43db67240ad88be462b5ee"/>
</subgroup>
<subgroup target="45" show="true">
<subgroup step="0" key="d0a7c4e08dde0d5ea3558d17bbed1413"/>
</subgroup>
<subgroup target="23" show="true">
<subgroup step="2" key="46c787738274a4bd3968dfbec5b12c7c"/>
</subgroup>
<subgroup target="80" show="true">
<subgroup step="1" key="bf6972c426b1672e7108c1680626698b"/>
</subgroup>
</group>
Я пытаюсь с этим SQL:
SELECT unnest ((xpath ('//// подгруппа / @ target', o c .xml_row)) :: text) AS target, unnest ((xpath ('/ ///subgroup/subgroup/@step',oc.xml_row))::text) AS step FROM publi c .target_conf AS oc;
С этим SQL i получить декартово произведение цели и шага, но если я поставлю только 1 строку, я получу все цели или все шаги в порядке.
Мне нужно получить 'цель' с его детьми 'шага'.
Пример что я хочу вернуть с sql posgres:
TARGET | ШАГ
30 | 0
30 | 2
30 | 5
45 | 0
23 | 2
80 | 1
Большое спасибо за вашу помощь!