学生表
id name 
1  张三    
2  李四    
3  王五    
4  赵六选课表
id stuid couseid
1    1      2
2    1      3
3    1      4
4    2      1
5    2      2
6    3      3课程表
id  cousename
1    计算机
2     数学
3      语文
4     英语查询结果:
name couseid cousename
张三  2         数学
张三  3         语文
张三  4         英语
李四  1         计算机
李四  2         数学
王五  3         语文 请问如何做链接查询得到以上查询结果?      

解决方案 »

  1.   


    select s.name, x.couseid, c.cousename
    from 学生表 s, 选课表 x, 课程表 c
    where s.id=x.stuid
      and x.couseid=c.id;
      

  2.   

    with student as (
      select 1 id,'张三' name from dual union all  
      select 2 id,'李四' name from dual union all  
      select 3 id,'王五' name from dual union all  
      select 4 id,'赵六' name from dual),
    selcouse as (
      select 1 id, 1 stuid, 2 couseid from dual union all
      select 2 id, 1 stuid, 3 couseid from dual union all
      select 3 id, 1 stuid, 4 couseid from dual union all
      select 4 id, 2 stuid, 1 couseid from dual union all
      select 5 id, 2 stuid, 2 couseid from dual union all
      select 6 id, 3 stuid, 3 couseid from dual),
    course as(
      select 1 id,'计算机' cousename from dual union all
      select 2 id,'数学'   cousename from dual union all
      select 3 id,'语文'   cousename from dual union all
      select 4 id,'英语'   cousename from dual)
      
    SELECT s.name, l.couseid, c.cousename
      FROM student s, selcouse l, course c
     WHERE s.id = l.stuid AND
           l.couseid = c.id
     ORDER BY s.id;
      

  3.   


    select a.name,b.couseid,c.cousename
    from 学生表 a,选课表 b,课程表 c
    where a.id=b.stuid and b.couseid=c.id
      

  4.   

      select a.name, b.couseid,c.cousename
        from student_test a, selcouse_test b, course_test c
       where a.id = b.stuid 
       and b.couseid =c.id