用 SQL 命令写入 XML

Write XML with SQL Command

我对 XML 的 SQL 命令有疑问。其实我是新手

我有 2 个 table:

  1. table Customer_BSM:

    id_Cust | Name    | Omset   | Colour  | seq
    ---------------------------------------------
    1001    | Ali     | 10      | Black   | 1
    2001    | Bhudi   | 5       | Red     | 2
    3001    | charlie | 20      | yellow  | 3
    
  2. table address_BSM:

    id_cust | Address  | no1    | no2
    -----------------------------------
    1001    | Jln 1    | 1A     | 2A
    1001    | Jln 2    | 1B     | 2B
    2001    | street 1 | S1     | S2
    3001    | gang A   | AG     | BG
    

现在,我想 select 并使用 sql 命令创建 xml,尤其是 "for xml"。 sql命令怎么写?

结果,大概是这样的

 <customer_BSM id="1">
     <id_cust>1001<id_cust>
     <Name>Ali</Name>
     <omset>10</omset>
     <colour>black</colour>
     <addres_bsm>
        <address>jln 1</address>
        <no1>1A</no1
        <no2>2A</no2>
     </addres_bsm>
     <addres_bsm>
        <address>jln 2</address>
        <no1>1B</no1
        <no2>2B</no2>
     </addres_bsm>
 </customer_BSM>
 <customer_BSM id="2">
     <id_cust>2001<id_cust>
     <Name>Bhudi</Name>
     <omset>5</omset>
     <colour>red</colour>
     <addres_bsm>
        <address>street 1 </address>
        <no1>S1</no1
        <no2>S2</no2>
     </addres_bsm>
 </customer_BSM>
 <customer_BSM id="3">
     <id_cust>3001<id_cust>
     <Name>Charlie</Name>
     <omset>20</omset>
     <colour>Yellow</colour>
     <addres_bsm>
        <address>gang A</address>
        <no1>AG</no1
        <no2>BG</no2>
     </addres_bsm>
 </customer_BSM>

我使用了这个 SQL 命令,但没有用

SELECT  *, (
    SELECT * 
    FROM [address_bsm] A INNER JOIN [customer_bsm] B 
    ON a.id_cust = b.id_cust
    FOR XML PATH ('Address_bsm')) 
FROM [customer_bsm]
FOR XML PATH

其实和我的目的不一样

我只能用 MSSQL 进行测试,但 SQL 应该非常相似。

SELECT c.[id_Cust]
      ,[Name]
      ,[Omset]
      ,[Colour]
      ,[seq]
      ,(SELECT a.[Address],a.[no1],a.[no2] FROM address_BSM a
      WHERE a.id_cust = c.id_cust
  FOR XML PATH ('address_bsm'), TYPE)
  FROM [dbo].[Customer_BSM] c
  FOR XML PATH ('customer_bsm')