select b.Id, b.CombinationDetail
from [dbo].[T_ERP_Item] a
INNER JOIN [dbo].[T_ERP_Sku] b ON b.ItemOuterId = a.OuterId and b.Active = 1
WHERE b.Id = 6677
获取所有被关联的记录ID
select left(CombinationDetail,len(CombinationDetail)-1) as CombinationDetail
From
(Select (select cast(CombinationDetail as nvarchar),',' from T_ERP_Item Where isnull(CombinationDetail,'')<>'' FOR XML PATH('') ) as CombinationDetail) tb
然后获取id 不在CombinationDetail里面的记录
缺点,如果数据大多,导致长符串超过SQL所限制的长度,CombinationDetail将被截断 ------解决方案-------------------- 是否可以把"CombinationDetail"里的值改为文本,到调用的时候再转换回来???当然,这只是提供一个思路参考 ------解决方案-------------------- 1.循环ID数组查询到每一个ID对应的值
2.每for一次就 list.add()一次添加到list集合中,然后gridview就可以绑定了。当然可以针对list来排序会进行其他操作。 ------解决方案-------------------- 不用分隔啊,SQL语句中有这么一个用法"Select * From table Where id in("+ row["CombinationDetail"].ToString() +")"