0

我想fgz_merken从表中加入表fgz_leveranciers。该表fgz_merken有一个 xml 列lst_leveranciers。此时我只得到fgz_merken.lst_leveranciers. 你能帮助我吗?

select
  fgz_leveranciers.adres,
  fgz_leveranciers.debiteurnr,
  fgz_leveranciers.fax,
  fgz_leveranciers.fax_jaarbeurs,
  fgz_leveranciers.id,
  fgz_leveranciers.import_leverancier_id,
  fgz_leveranciers.mailto,
  fgz_leveranciers.plaats,
  fgz_leveranciers.plaats_postadres,
  fgz_leveranciers.postadres,
  fgz_leveranciers.postcode,
  fgz_leveranciers.postcode_postadres,
  fgz_leveranciers.stand,
  fgz_leveranciers.tel,
  fgz_leveranciers.tel_jaarbeurs,
  fgz_leveranciers.title,
  fgz_leveranciers.vereniging,
  fgz_leveranciers.website,
  fgz_merken.title as MerkTitel 
from 
  fgz_leveranciers 
  left join fgz_merken on 
    fgz_merken.lst_leveranciers.exist('lst_leveranciers/lst_leveranciers[.=sql:column("fgz_leveranciers.id")]') = 1 
where 
  fgz_leveranciers.id != '0' 
  and fgz_merken.title like '%swa%' 
order by fgz_leveranciers.id

这是来自 fgz_merken.lst_leveranciers 的一些数据

<lst_leveranciers>
  <lst_leveranciers>
    <value>125</value>
  </lst_leveranciers>
</lst_leveranciers>
<lst_leveranciers>
  <lst_leveranciers>
    <value>16</value>
    <value>40</value>
    <value>269</value>
  </lst_leveranciers>
</lst_leveranciers>
4

1 回答 1

0
select
    fgz_leveranciers.*,
    xmldata.i
from
    fgz_leveranciers
    left join
    (                
        Select x.t.value('.','int') i
        from fgz_merken
            cross apply lst_leveranciers.nodes('lst_leveranciers/lst_leveranciers/value') as x(t)
      ) xmldata
    on fgz_leveranciers.i = xmldata.i
于 2013-08-07T08:45:12.060 回答