表一:数据表
    a  b
----------  
1|  x  1 
2|  x  2
3|  y  1
4|  y  3
5|  z  4
----------表二:关系表    a  b  a'  b'
-----------------
1   x  1  y   1
2   x  1  y   3
-----------------
说明:数据都存在一张表里,比如上表,表一里有四条数据
     而表二是关系表,如上,表示 表一中a列为x,b列为1的记录有两条子记录,分别示表一中a列为y,b列为1的一条记录和a列为y,b列为3的一条记录现在想要给条件,根据查询条件检索表二的子记录,并把对应表一里的详细信息输出(一条sql语句)比如 给出条件:在表一里搜索a=x,b=1的子记录,并输出子记录详细信息
期盼输出为
----------  
3|  y  1
4|  y  3
----------

解决方案 »

  1.   

    create table ta(id int,a varchar(4),b varchar(4))
    create table tb(id int,a varchar(4),b varchar(4),[a1] varchar(4),[b1] varchar(4))
    insert into ta select 1,'x','1' 
    insert into ta select 2,'x','2'
    insert into ta select 3,'y','1'
    insert into ta select 4,'y','3'
    insert into ta select 5,'z','4'
    insert into tb select 1,'x','1','y','1'
    insert into tb select 2,'x','1','y','3'
    goselect
        b.*  
    from 
        ta a,
        ta b,
        tb c 
    where 
        a.a=c.a and a.b=c.b and b.a=c.a1 and b.b=c.b1
        and
        a.id=1
    go/*
    id          a    b    
    ----------- ---- ---- 
    3           y    1
    4           y    3
    */
    drop table ta,tb
    go
      

  2.   

    create table ta(id int,a varchar(4),b varchar(4))
    create table tb(id int,a varchar(4),b varchar(4),[a1] varchar(4),[b1] varchar(4))
    insert into ta select 1,'x','1' 
    insert into ta select 2,'x','2'
    insert into ta select 3,'y','1'
    insert into ta select 4,'y','3'
    insert into ta select 5,'z','4'
    insert into tb select 1,'x','1','y','1'
    insert into tb select 2,'x','1','y','3'
    goselect
        a.*  
    from 
        ta a,
        tb b 
    where 
        a.a=b.a1 and a.b=b.b1
        and
        b.a='x' and b.b='1'
    go/*
    id          a    b    
    ----------- ---- ---- 
    3           y    1
    4           y    3
    */drop table ta,tb
    go