我正在处理一个查询,它根据JOIN关联从不同的表中获取2列:
SELECT ','+ca.attr_val AS [text()]
FROM [CONTRACT_ATTR] ca
JOIN GM_PROGRAM gm
ON ta.GM_PROG = gm.item_id
WHERE CA.Item_Id = CO.Item_Id
AND ca.field_id = 239
ORDER BY co.item_name
FOR XML PATH ('') ta
), 2, 1000) GM_PROG
第二列有数字,这些数字是查找表上的键。
我试图找出如何将数字更改为正确的item_name。
我认为它与子字符串中的查询有关:
OnCollisionEnter2D
这就是我所处的位置。我没有跑,我认为这是因为它试图引用。
我做错了什么以及如何解决?
答案 0 :(得分:1)
即将结束,您只需要将ca.attr_val
更改为gm.item_name
,您的加入引用ta
而不是ca
(错误我猜),并且可能会排序子查询中gm.item_name
而不是co.item_name
:
SELECT DISTINCT co.item_name
,SUBSTRING((
SELECT ',' + gm.item_name AS [text()]
FROM [CONTRACT_ATTR] CA
inner join GM_PROGRAM gm
ON ca.attr_val = gm.item_id
WHERE CA.Item_Id = CO.Item_Id
AND ca.field_id = 239
ORDER BY gm.item_name
FOR XML PATH('')
), 2, 1000) GM_PROG
FROM [dbo].[CONTRACT] CO;