两个表
表A
id(int)    col1(varchar)  
1           value1     
2           value2
3           value3
4           value4表B
id(int)     col2(varchar)
1            1,2,3
2            1,2
我要跟据表B的col2列来获取表A的记录
如我给定表B的id=1要通过连表查询得到表A id为1,2,3的记录
菜鸟求解。。
 

解决方案 »

  1.   


    select *
    from a join b on charindex(','+ltrim(a.id)+',',','+b.col2) > 0
      

  2.   


    select * from a where charindex(','+cast(a as varchar(10))+',',(select top 1 ','+col2+',' from b where id=1) >0
      

  3.   

    select * from a join b on charindex(','+ltrim(a.id)+',',','+b.col2) > 0
      

  4.   

    declare @Sql varchar(1000)
    select @Sql = 'select * from A where id in (''' + col2 + ''')' from B where id = 1exec(@Sql)
      

  5.   


    select *
    from a join b on charindex(','+ltrim(a.id)+',',','+b.col2) > 0
    where b.id = ????
      

  6.   


    可是b.id=1的时候应该有三条记录,但是现在只有两条
      

  7.   


    select *
    from a join b on charindex(','+ltrim(a.id)+',',','+b.col2+',') > 0
    where b.id = ????