select code , name , old from student a join user b on a.code=b.code
union all 
select code , name , old from teacher a join user b on a.code=b.code

解决方案 »

  1.   

    select a.code,b.name,c.name from 人员表 a,教师表 b,学生表 c 
          where a.code=b.code and a.code=c.code
      

  2.   

    select a.code,b.name,c.name from 人员表 a,教师表 b,学生表 c 
          where a.code=b.code or a.code=c.code
      

  3.   

    select a.code,b.name,c.name from 人员表 a,教师表 b,学生表 c 
          where a.code=b.code or a.code=c.code
    正解!
      

  4.   

    不对阿。select a.code,b.name,c.name from 人员表 a,教师表 b,学生表 c 
          where a.code=b.code or a.code=c.code
    得到的结果如下:code name name 
    S01 李强 张三 
    T01 李强 张三 
    S01 王芳 张三 
    T02 王芳 张三 
    S02 李强 李四 
    T01 李强 李四 
    S02 王芳 李四 
    T02 王芳 李四 
      

  5.   

    --测试:
    create table student(code varchar(10),name varchar(20))
    insert into student select 'S01','张三'
    union all select 'S02','李四'create table teacher(code varchar(10),name varchar(20))
    insert into teacher select 'T01','李强'
    union all select 
    'T02','王芳'create table [user](code varchar(10),old int)
    insert into [user] select 's01',21
    union all select 's02',19
    union all select 'T01',45
    union all select 'T02',51--查询:
    select a.code,b.name,a.old from [user] a ,(
                       select * from student
               union all 
                       select * from teacher 
                                   )b where a.code=b.code或者:
    select a.code , name , old from student a join [user] b on a.code=b.code
    union all 
    select a.code , name , old from teacher a join [user] b on a.code=b.code--结果:
    s01 张三 21
    s02 李四 19
    T01 李强 45
    T02 王芳 51
      

  6.   


    select a.*,b.name from [user] a join student b on a.code=b.code
    union all 
    select a.*,b.name from [user] a join teacher b on a.code=b.code
      

  7.   

    --select a.code,b.name,c.name from 人员表 a,教师表 b,学生表 c 
          where a.code=b.code or a.code=c.code--这种写法肯定错了,“b.name“那就是姓名都来自于
    教师表了,怎么会显示学生的姓名呢?
    比较简单的办法就是用楼上的
      

  8.   

    或者:
    select a.code , name , old from student a join [user] b on a.code=b.code
    union all 
    select a.code , name , old from teacher a join [user] b on a.code=b.code为正解