我想加入表格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>
答案 0 :(得分: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