问题描述
t1id字段1user——grant1A1,2,3,42B2,33C2,44D1,45E1,3,4t2id字段1字段21Aa2Bb3Cc4Dd5Eeuser——grant是varchar类型,是t2表的ID号现在我将以user——grant的值来查询t2表对应id的记录请问如何写sql语句
解决方案
解决方案二:
不用分割,你试试select*fromt2whereidin(selectuser-grantfromt1whereid='1')这样应该可以把t2中符合t1中id为1的纪录的相应纪录取到
解决方案三:
select*fromt2wherecharindex(id,(selectuser--grantfromt1whereid='1'))>0如果t1的id不是固定的,那么就要用列转换成行的方法将charindex的第二个参数变成一个字符或者通过存储过程循环来实现
解决方案四:
引用1楼zlkingdom的回复:
不用分割,你试试select*fromt2whereidin(selectuser-grantfromt1whereid='1')这样应该可以把t2中符合t1中id为1的纪录的相应纪录取到
这样似乎不行的,这样取出的结果是t2表id等于t1表user-grant的记录因为selectuser-grantfromt1whereid='1'取出来的user-grant是个整体,读sql的in来说是最小单位了
解决方案五:
t1id字段1user——grant1A1,2,3,42B2,33C2,44D1,45E1,3,4t2id字段1字段21Aa2Bb3Cc4Dd5Ee假设ID="1"select*fromt2wherecharindex(id,(selectuser——grantfromt1whereid='"+ID+"')>0andexists(select*fromt1whereid='"+ID+"')
解决方案六:
select*fromt1aleftjoint2boncharindex(','+b.id+',',','+a.user_grant+',')>0
解决方案七:
select*fromt2innerjoint1oncharindex(','+t2.ID+',',','+t1.user——grant+',')>0where你的其他条件
解决方案八:
下午又到导师那里接受教育去了。。。。。。。痛苦顺便问一个小小的问题啊,点击treeview父节点的时候,怎么样展开子节点啊?不是点那个+号,是点text的内容
解决方案九:
上面各位大侠的结果都一样,int对于charindex函数的参数1无效
解决方案十:
t2表的id是自增1的int型