在我正在处理的项目中,我们需要创建一个XML并将其传递给接口,并且在创建包含父表及其后续子表的数据的XML时遇到问题。
父表: - 部门应该像
dept_id dept_name
1 History
2 Biology
CHild table: - 员工应该像
emp_id emp_name dept_id
1 Helen 1
2 Martha 1
3 John 1
4 Carol 2
因此生成的XML应该与department id = 1
类似`<department>
<dept_id>1</dept_id>
<dept_name>History</dept_name>
</department>
<employee>
<emp_id>1</emp_id>
<emp_name>Helen</emp_name>
</employee>
<employee>
<emp_id>2</emp_id>
<emp_name>Martha</emp_name>
</employee>
<employee>
<emp_id>3</emp_id>
<emp_name>John</emp_name>
</employee>'
如果有人知道更好的方法,那么它会有很大的帮助。 提前致谢
答案 0 :(得分:1)
这样的事情(部门节点中的员工节点因此它不是片段):
SELECT XMLELEMENT(
"department",
XMLFOREST(
e.dept_id AS "dept_id",
d.dept_name AS "dept_name"
),
XMLAGG(
XMLELEMENT(
"employee",
XMLFOREST(
emp_id AS "emp_id",
emp_name AS "emp_name"
)
)
)
)
FROM employees e
INNER JOIN departments d
on ( e.dept_id = d.dept_id )
WHERE e.dept_id = 1
GROUP BY e.dept_id, d.dept_name;