2013-08-07 17 views
0

我想從表fgz_leveranciers加入表fgz_merken。表fgz_merken有一個xml列lst_leveranciers。在這一刻,我只獲得了fgz_merken.lst_leveranciers中只有一個值的記錄。你可以幫我嗎?有多個值的XML列上的聯接表

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> 
+0

什麼databaseee一些數據... – OzrenTkalcecKrznaric

+0

數據庫是MSSQL 2005 – user2659842

回答

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 
+0

就像一個魅力! TNX。 – user2659842