我有一個名為的表ListItem和另一個表ListItemRelationship,其中包含表中專案之間的多對多關系ListItem。
例子:ListItemtable,ListItemGroupID用來提供一對多的關系。
| 串列項ID | 串列項代碼 | 價值 | 串列項組 ID |
|---|---|---|---|
| 2925 | 貨幣 | 歐元 | 空值 |
| 2926 | 狀態 | 華盛頓 | 空值 |
| 2927 | 城市 | 西雅圖 | 2926 |
| 2930 | 城市 | 斯波坎 | 2926 |
| 2928 | 國家 | 德國 | 空值 |
| 2929 | 國家 | 法國 | 空值 |
示例ListItemRelationship表這個表只是維護多對多關系
| 串列項父 ID | 串列項ID |
|---|---|
| 2925 | 2928 |
| 2925 | 2929 |
在這里,我是說歐元被德國和法國等多個國家使用。
現在,在嘗試獲取一個州的所有城市時,我的以下查詢有效,
SELECT (
SELECT
ListItemID AS [value],
ListItemCode
FROM ListItem AS [Item]
WHERE ListCode = 'City'
AND (ListItemGroupID = ISNULL(2926, ListItemGroupID) OR ListItemGroupID IS NULL AND 2926 IS NULL)
FOR XML RAW
)
但是,要從中獲取記錄LisItemRelationship,我沒有得到想要的結果。我正在嘗試的查詢是
SELECT (
SELECT
LIR.ListItemID AS [value],
ListItemCode
FROM ListItem AS [Item] INNER JOIN ListItemRelationship AS LIR ON Item.ListItemID = LIR.ListItemParentID
WHERE ListCode = 'Country'
AND (LIR.PickListItemParentID = 2925)
FOR XML RAW
)
我希望從第二個查詢中收到以下 XML
<xml>
<row value="2928" ListItemCode="Germany"/>
<row value="2929" ListItemCode="France"/>
</xml>
我的查詢有什么問題?
uj5u.com熱心網友回復:
您的列名中似乎有一些錯誤。請嘗試以下操作:
SELECT (
SELECT
LIR.ListItemID AS [value],
Item.[Value] as ListItemCode
FROM ListItem AS [Item]
INNER JOIN ListItemRelationship AS LIR ON Item.ListItemID = LIR.ListItemID
WHERE Item.ListItemCode = 'Country'
AND (LIR.ListItemParentID = 2925)
FOR XML RAW
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/311538.html
標籤:sql sql-server 查询语句
