多对多关系下SQL查询返回XML响应为NULL的问题排查
你的查询存在3个明显错误,具体如下:
- 字段名笔误:
ListItemRelationship表中不存在PickListItemParentID字段,你写的过滤条件LIR.PickListItemParentID = 2925字段名错误,正确字段名是ListItemParentID - 关联逻辑错误:当前JOIN条件
Item.ListItemID = LIR.ListItemParentID关联到的是父级条目(也就是欧元对应的2925记录),但你需要查询的是子级国家条目,所以关联条件应该改为Item.ListItemID = LIR.ListItemID - 字段归属不明确:查询字段
ListItemCode和过滤字段ListCode没有指定表别名,容易引发歧义,建议明确绑定Item表别名
修正后的SQL语句如下:
SELECT ( SELECT LIR.ListItemID AS [value], Item.ListItemCode FROM ListItem AS [Item] INNER JOIN ListItemRelationship AS LIR ON Item.ListItemID = LIR.ListItemID WHERE Item.ListCode = 'Country' AND LIR.ListItemParentID = 2925 FOR XML RAW, ROOT('xml') )
补充说明:新增的ROOT('xml')参数用于生成你预期的外层<xml>根节点,和你给出的预期输出格式完全匹配。
内容的提问来源于stack exchange,提问作者tRuEsAtM
相关产品推荐
相关产品推荐

