【问题标题】:How to query multiple values from a joined table in a select statment?如何在 select 语句中从连接表中查询多个值?
【发布时间】:2014-01-14 19:51:16
【问题描述】:

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

这些表格填写如下:

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;

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

【问题讨论】:

标签: sql spatialite


【解决方案1】:

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 支持。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-21
    • 2023-02-23
    • 1970-01-01
    • 2013-12-19
    • 2013-03-06
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多