3 つのテーブルを保持するデータベースの場合:
- 会社
- デパートメント
- 所属部署の従業員
以下のようなxmlにしたいと思います:
<Companies>
<Company>
<CompanyName></CompanyName>
<CompanyId></CompanyId>
<..></..>
<Departments>
<Name></Name>
<..></..>
<Employees>
<Employee>
<FirstName></FirstName>
<LastName></LastName>
.. .. ..
</Employee>
.. .. ..
</Employees>
</Departments>
.. .. ..
</Company>
.. .. ..
</Companies>
会社が繰り返している場合(タグ)、社内の部門が繰り返している場合(タグ)、部門内の従業員が繰り返している場合(タグ)を繰り返すことで、データではなくこれらの要素の数が複数あることを意味します。
関係
Company
とin table にリンクされているin table をDepartment
介して関連付けられています。FK
Department
CompanyId
Company
Department
テーブル内にリンクするテーブルEmployeeInDepartment
内の「FK」を介して関連付けられています。EmployeeInDepartment
DepartmentId
Department
クエリ:
PUBS データベースで以下を実行し、xml を確認します。ID 10 の複数のジョブが含まれます。
select jobs.job_id 'JobId',
job_desc 'Desc',
(
select emp_id 'EmployeeId',fname 'FirstName',lname 'LastName' from employee where job_id = jobs.job_id for xml path('Emploees'),type
)
from jobs
inner join
employee on jobs.job_id = employee.job_id
for xml path('employees')