如何在select语句中查询连接表中的多个值?

时间:2014-01-14 19:51:16

标签: sql spatialite

我在spaceite数据库中有以下表格:

此表填写如下:

boden_verd:   
boden_verd_ID,boden_verd   
1,value1   
2,value2   
3,value3   

baumkataster:   
baum_ID, boden_verd      
1,{2}   
2,{1,3}   
3,{1,2,3}   

我需要的是以下内容:

baum_ID,boden_verd   
1,{value2}   
2,{value3,value3}   
3,{value1,value2,value3}   

我找到了一个类似问题的代码示例(已根据我的需要进行了调整),但是它返回了一个错误,我不知道我错了:

SELECT baumkataster.baum_ID AS baum_ID,

stuff((select  DISTINCT  ', ' +  boden_verd.boden_verd
             from boden_verd
             WHERE ','+baumkataster.boden_verd+',' LIKE '%,'+boden_verd.boden_verd_ID+',%'
             for xml path(''),type).value('.','nvarchar(max)'), 1, 2, '' )  AS boden_verd 

FROM baumkataster;

这可能吗?谢谢你的回答!!
帕特里克

1 个答案:

答案 0 :(得分:0)

SQLite's SELECT statement不支持任何语法,例如“for xml path()”。

在SQL数据库中,您应该期望存储像这样的值

baumkataster:   
baum_ID  boden_verd      
1        2
2        1
2        3
3        1
3        2
3        3

或者像这样。

baumkataster:   
baum_ID  boden_verd      
1        value2   
2        value3
2        value3
3        value1
3        value2
3        value3

例外情况相对罕见。 (并由提供xml函数或数组函数的dbms支持。)