我有两个表,一个表的结构如下:
aa      bb
1       张三
2       李四
3       王五
另一个表为
cc       dd
1111     张三,李四
2222     张三,王五
3333     张三,李四,王五
我想查出的结果为:
cc      bb
1111    王五
2222    李四
请教各位老师,这样的查询语句该如何写

解决方案 »

  1.   

    题目信息不是很清楚,如果第2张表内容为cc       dd
    1111     张三     
    2222     张三,王五
    3333     张三,李四,王五结果是这样的吗?cc      bb
    1111    李四,王五
    2222    李四如果是这样处理起来比你上面说的要麻烦多了
      

  2.   

    我明白楼主的意思我坐了两个表试了一下,能出现正确结果,不过性能代价很大。
    我建的表满足两个条件:
    1.aa,cc都是主键(没想过不是主键可不可以)
    2.bb,dd都是字符类型select bb from tt1,tt2
    where instr(dd,bb)=0
      

  3.   

    楼上想得太简单了吧,我再指出下问题的漏洞吧,问题弄明白了才好动手嘛表a:
    aa      bb
    1       张三
    2       李四
    3       王五
    4       赵六cc       dd
    1111     张三,李四
    2222     张三,王五
    3333     张三,李四,王五
    4444     张三,李四,王五,赵六按楼主的意思最后结果应该是这样的:
    cc      bb
    1111    王五,赵六
    2222    李四,赵六
    3333    赵六下面这句sql能完成上面的功能吗?
    select bb from tt1,tt2 where instr(dd,bb)=0再说instr(dd,bb)=0来判断是否存在某个姓名也是不对的,因为可能同时存在名字叫‘李四’和‘李四平’的人,instr('李四平,赵六','李四') 就不等于0了
      

  4.   

    我觉得做法应该是将表2,dd字段拆解,然后再将表1中不包含拆解后的项选出来,形成一新串
    这是可以实现的,但用一句SQL肯定是不行的
      

  5.   

    怎么说呢,我就是提供一个思路,我发完贴自己想想都有漏洞,是我自己想的不够仔细,但是思路基本上是对的。倒, duanzilin(寻)  你说说还有好的方法吗?