我现在有两张表
班级    bid  班级编号  任课教师 军事教官  学习顾问 
1       1013     0125     0126      0127员工yid  员工编号  员工姓名  员工职务 
1      0125       张       任课教师
2      0126       李       军事教官
3      0127       王       学习顾问  首先说班级表中3个教师字段,关联的都是员工表中员工编号。
查询效果应该是 班级编号  任课教师  军事教官  学习顾问 
  1013       张      李          王我如果这样设计怎么写查询语句?可以得到我想要的查询效果?
或者大家有什么好的设计方案?

解决方案 »

  1.   


    select
        a.bid, b.员工姓名, c.员工姓名, d.员工姓名
    from
       班级 a
       left join 员工 b on a.任课老师 = b.员工编号
       left join 员工 c on a.任课老师 = c.员工编号
       left join 员工 d on a.任课老师 = c.员工编号
      

  2.   


    --copy快了,没修改
    select
        a.bid, b.员工姓名, c.员工姓名, d.员工姓名
    from
       班级 a
       left join 员工 b on a.任课老师 = b.员工编号
       left join 员工 c on a.军事教官 = c.员工编号
       left join 员工 d on a.学习顾问 = c.员工编号
      

  3.   

    --copy快了,没修改
    select
        a.bid, b.员工姓名, c.员工姓名, d.员工姓名
    from
       班级 a
       left join 员工 b on a.任课老师 = b.员工编号
       left join 员工 c on a.军事教官 = c.员工编号
       left join 员工 d on a.学习顾问 = c.员工编号
      

  4.   

    个人看法:
    [班级]表设计的不合理[班级]-[老师]:是一对多的关系,所以应另建一个[班级老师]表;
    [老师]-[职务]:也可能是一对多的关系;[学生]结构:bid 班级编号 
    [老师]结构:yid 员工编号 员工姓名
    [职务表]结构:职务编号,职务名称;
    [班级老师]结构:ID,班级编号 员工编号 职务编号;
      

  5.   


    select a.班级编号,b.员工姓名 as 任课教师,c.员工姓名 as 军事顾问,d.员工姓名 as 学习顾问  
    from 
       班级 a 
       left join 员工 b on a.任课老师 = b.员工编号
       left join 员工 c on a.军事教官 = c.员工编号
       left join 员工 d on a.学习顾问 = c.员工编号