2013-08-07 2 views
0

테이블 fgz_merken 테이블 fgz_leveranciers에서 조인하려고합니다. 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