表b1
id 1
name  a
id 2
name b
id 3
name c表b2
id 1
type aa
id 2
type bb
id 3
type cc表 b3
id 2
name a
id 3
name e想检索:三个表中所有name=a的数据,并且id,name,type要都显示出来

解决方案 »

  1.   

    第2个表里貌似没有name=a的数据
      

  2.   

    select b1.id,b1.name,b2.type from b1,b2
    where b1.id=b2.id and b1.name=a
    union
    select b3.id,b3.name,b2.type from b3,b2
    where b3.id=b2.id and b3.name=a
    好象会有重复数据
      

  3.   

    楼上老师请看
    记录如下:
    b1 b2  b3
    a  aa
    b  bb  a
    c  cc  e三个表中以 id 联系 ,表2中没有name字段想检索出
    id  name  type
    1   a      aa
    2   b      bb  (因为表b3中name=a)
      

  4.   

    试试这句
    select b1.*,b2.*.b3.* from b1 left join b2 on b1.id=b2.id left join b3 on b2.id=b3.id where b1.name='a'
      

  5.   

    zhaozhao110
    union all ??能详细点吗,,谢谢了
      

  6.   

    感谢各位老师了...我想用
    select * from b1 w,b2 m,b3 n where (w.id=m.id and w.name='a')or(w.id=m.id and w.id=n.id and n.name='a')
      

  7.   

    分组其实简单。select a1.id,a1.name,a2.type from b1 a1,b2 a2,b3 a3 where a3.name='a' and a3.id=a2.id and a1.id=a3.id
    union
    select a1.id,a1.name,a2.type from b1 a1,b2 a2  where a1.name='a' and a1.id=a2.id