从Oracle SQL查询中需要来自父表和子表的XML
在我正在处理的项目中,我们需要创建一个XML并将其传递给接口,并且在创建包含父数据的XML时遇到问题表及其随后的子表。从Oracle SQL查询中需要来自父表和子表的XML
父表: - 部门应该像
dept_id dept_name
1 History
2 Biology
子表: - 员工应该像
emp_id emp_name dept_id
1 Helen 1
2 Martha 1
3 John 1
4 Carol 2
所以生成的XML应该是这样的部门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>'
如果有人知道这样做的更好方法,那将是非常有帮助的。 在此先感谢
像这样的东西(在部门节点员工节点,所以它不是一个片段):
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;
非常感谢... 我一直在寻找这种查询。 – user1654571
@ user1654571如果此答案或其他答案回答了您的问题,您可以将其标记为已接受(在答案左侧的投票按钮下方勾选绿色复选标记) - 这会让其他用户知道您的问题已得到解决。 – MT0
再次感谢... 完成并感谢您帮助newb :) – user1654571
比一个更好的办法?你现在在做什么,你有什么问题?你也有一个XML片段,而不是一个有效的文件 - 没有根节点。你确定这是你要找的格式吗? –