select a_id from a where a_name='t'
查询结果a_id='A1'select b_id from b where a_id='A1'
查询结果b_id='B2'select c_id from c where b_id='B2'
查询结果c_id='c3'select * from c where c_id='c3'
.....
条件查询第1个表a,然后用a表的结果(a_id='A1')去查询b表。
再用b表的结果(b_id='B2')去查询c表。
再用c表的结果(结果c_id='c3')去查询d表。
a->b->c-d有没什么办法简化的。用一条语句就可以完成?做视图?

解决方案 »

  1.   

    select c.*
    from a, b, c
    where a.a_id = b.a_id
    and b.b_id = c.b_id
    and a.a_name = 't'
      

  2.   

    select a_id from a where a_name='t'
    查询结果a_id='A1'select b_id from b where a_id='A1'
    查询结果b_id='B2'select c_id from c where b_id='B2'
    查询结果c_id='c3'select * from c where c_id='c3'
    select c.* from a,b,c
    where a.a_id=b.a_id and b.b_id=c.b_id  and a.name='t'
      

  3.   


    --a_name看错了 写成a.name
    select c.* from a,b,c
    where a.a_id=b.a_id and b.b_id=c.b_id  and a_name='t'
      

  4.   

    子查询select * from c where c_id=
    (select c_id from c where b_id=
    (select b_id from b where a_id=
    (select a_id from a where a_name='t')));