日期:2014-05-19  浏览次数:20409 次

求一句SQL语句.请高人指点.
表1.
[Table1_ID]         [Area_ID]         [emp_id]
1                               1                         10
2                               3                         22
3                               7                         22
4                               8                         10
5                               9                         22

表2.
[ID]         [emp_id]           [Grand_Area]
1               10                       1,3,7
2               22                       3,7


效果.
[Table1_ID]           [Area_id]         [emp_id]      
1                                 1                         10
2                                 3                         22
3                                 7                         22

用一句SQL语句来表达意思.
select   a.*     from   table1   a   where   a.Area_id   in   (select   b.Grand_Area   from   table2   b   where   b.emp_id=a.emp_id)

就是这个意思,   但是这句SQL不能达到要求...
因为后面一个   (select   b.Grand_Area   from   table2   b   where   b.emp_id=a.emp_id)
得到的Grand_Area   的值会被看做一个整体...   而没办法用来in...

我表达能力不好.
希望各位大大能明白...


------解决方案--------------------
再或者

select a.* from table1 a Inner Join table2 b On b.emp_id=a.emp_id and CharIndex( ', ' + Cast(a.Area_ID As Varchar) + ', ', ', ' + B.Grand_Area + ', ') > 0

select a.* from table1 a Inner Join table2 b On b.emp_id=a.emp_id and ', ' + b.Grand_Area + ', ' Like '%, ' + Cast(a.Area_ID As Varchar) + ',% '