![](/img/trans.png)
[英]How can get the query result of order parent-child then paren-child in the table with parent-child relationship?
[英]How to query form a parent and child table and return the result as XML?
我有兩張表 Customer 和 Order
客戶表有 customerId,CustomerName
訂單表有訂單 ID、客戶 ID、產品 ID
我想要的結果是一個 xml 文件
<Customers>
<Customer>
<CustomerId>7</CustomerId>
<CustomerName>def</CustomerName>
<Orders>
<Customerorder>
<OrderId>5</OrderId>
<CustomerId>1</CustomerId>
<ProductId>3</ProductId>
</Customerorder>
<Customerorder>
<OrderId>5</OrderId>
<CustomerId>1</CustomerId>
<ProductId>3</ProductId>
</Customerorder>
</Orders>
</Customer>
<Customer>
<CustomerId>2</CustomerId>
<CustomerName>abc</CustomerName>
<Orders>
<Customerorder>
<OrderId>5</OrderId>
<CustomerId>1</CustomerId>
<ProductId>3</ProductId>
</Customerorder>
<Customerorder>
<OrderId>5</OrderId>
<CustomerId>1</CustomerId>
<ProductId>3</ProductId>
</Customerorder>
</Orders>
</Customer>
</Customers>
您在 xml 中有錯誤數據,例如 id 1 和 id 7。
這是你需要的嗎?
declare @Customer Table(CustomerID int, CustomerName varchar(50))
insert into @Customer(CustomerID, CustomerName)
Values
(1, 'def'), (2, 'abc')
select * from @Customer
declare @Order Table(OrderID int, CustomerID int, ProductID int)
insert into @Order(OrderID, CustomerID, ProductID)
Values
(5,1, 3), (6,1,4),
(4,2,4),(5,2,6)
select * from @Order
select
c.CustomerID
, c.CustomerName
, (select
(SELECT * FROM @Order o
WHERE o.CustomerID = c.CustomerID
FOR XML PATH('CustomerOrder'), type)
FOR XML PATH ('Orders'), type)
From @Customer c
FOR XML PATH('Customer'), ROOT ('Customers')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.