不好意思,我的意思就是说如果a表里面的a到n字段的值(任何一个,or的关系)如果和b表里面的i字段的值相等,那么这条记录就要表示出来。如果一条记录里面多个字段的值和b表i字段不同的值相等,只输出a表的这一条记录。

解决方案 »

  1.   

    不好意思,我的意思就是说如果a表里面的a到n字段的值(任何一个,or的关系)如果和b表里面的i字段的值相等,那么这条记录就要表示出来。如果一条记录里面多个字段的值和b表i字段不同的值相等,只输出a表的这一条记录,而这条记录所关联的b表i字段的所有的值也要放到结果集的这条记录里面去,这样能否实现?
      

  2.   


    select distinct A.* from A,B where A.字段a in(select 字段i from B)
    or
    A.字段b in(select 字段i from B)
    or
    A.字段c in(select 字段i from B)
    or
    A.字段d in(select 字段i from B)
      

  3.   

    --测试数据
    create table A(字段a varchar(10),字段b varchar(10),字段c varchar(10),字段d varchar(10))                              insert A select '1','2','3','4'          
    insert A select '5','6','e','f'          
    insert A select 'h','g','8','f'          
    insert A select 't','t','q','9'          
    insert A select 't','tt','t','y'          
    insert A select 't','tr','t','y'          
                                     
                             
    create table B(字段i varchar(10))
    insert B select 1
    insert B select 2
    insert B select 3
    insert B select 4
    insert B select 5
    insert B select 6
    insert B select 7
    insert B select 8
    insert B select 9
    select distinct A.* from A,B where A.字段a in(select 字段i from B)
    or
    A.字段b in(select 字段i from B)
    or
    A.字段c in(select 字段i from B)
    or
    A.字段d in(select 字段i from B)/*结果
    字段a        字段b        字段c        字段d        
    ---------- ---------- ---------- ---------- 
    1          2          3          4
    5          6          e          f
    h          g          8          f
    t          t          q          9(所影响的行数为 4 行)
    */
      

  4.   

    to xueguang
    不好意思,我太着急了,没有表达清楚。我把需求详细解释一下。客户的需求是现在有2张表,表a和表b,b表的i字段作为外键和a表的n个字段关联检索,例如:a.a=b.i or a.b=b.i or a.c=b.i 满足条件则输出数据(到这里xueguang兄已经解决没有问题)可是客户还需要将同样满足条件的b表的h字段的值放到结果集里面,以便在下面的程序逻辑里面与画面输入的值进行比较,小弟以前的逻辑和xueguang兄类似,可是这样达不到客户的要求,不知道各位大大有没有办法实现这样的需求,如果一条sql文不能实现,多条也行。A表                                           B表
    字段a 字段b 字段c...字段n                     字段i  字段h
    1      2     3        4                         1     aaa
    5      6     e        f                         2     bbb
    h      g     8        f                         3     cccc
    t      t     q        9                         4     dddd
    t      h     q        n                         9     pppp想得到的结果集:字段a 字段b 字段c...字段n                       字段h
    1      2     3        4                   (aaa,bbb,cccc,dddd)
    5      6     e        f                         
    h      g     8        f                          
    t      t     q        9                          pppp                      
      

  5.   

    晕,结果集错误应该是下面这样A表                                           B表
    字段a 字段b 字段c...字段n                     字段i  字段h
    1      2     3        4                         1     aaa
    5      6     e        f                         2     bbb
    h      g     8        f                         3     cccc
    t      t     q        9                         4     dddd
    t      h     q        n                         9     pppp想得到的结果集:字段a 字段b 字段c...字段n                       字段h
    1      2     3        4                   (aaa,bbb,cccc,dddd)
    t      t     q        9                          pppp                 
      

  6.   

    select * from a where a.字段a,a.字段b,a.字段c...a.字段n  in (select b.字段i from b)
      

  7.   

    不用函数和存储过程很难啊 ,我想不出来,当有人解决了后能够把代码发给我吗?谢谢!
    我的电子邮件是:[email protected]