Delphi里有lookup字段,但SQL语法里没找到对应的方法。请问怎么实现。
有两个表
表一:学生表
编号  姓名   班级编号
1     张三   1
2     李四   1
3     王五   2表二:班级类别
编号  名称       分科
1     高三3班    文
2     高二1班    理
3     高二2班    理现在希望得到如下表:
编号  姓名   班级编号 分科
1     张三   1        文
2     李四   1        文
3     王五   2        理SQL语句该如何写?

解决方案 »

  1.   

    select a.*,b.分科
    from 学生表 a
      join 班级类别 b
        on a.班级编号=b.编号
      

  2.   


    select a.*,b.分科
    from 学生表 a
      ,班级类别 b
       where a.班级编号=b.编号
      

  3.   

    select a.*,b.分科
    from 学生表 a
      ,班级类别 b
       where a.班级编号=b.编号
      

  4.   

    if object_id('[学生表]') is not null drop table [学生表] 
     go 
    create table [学生表]([编号] int,[姓名] varchar(10),[班级编号] int)
    insert [学生表] select 1,'张三',1
    union all select 2,'李四',1
    union all select 3,'王五',2if object_id('[班级类别]') is not null drop table [班级类别] 
     go 
    create table [班级类别]([编号] int,[名称] varchar(10),[分科] varchar(10))
    insert [班级类别] select 1,'高三3班','文'
    union all select 2,'高二1班','理'
    union all select 3,'高二2班','理'select a.*,b.分科
    from 学生表 a
      join 班级类别 b
        on a.班级编号=b.编号
    /*
        编号          姓名         班级编号        分科
    ----------- ---------- ----------- ----------
    1           张三         1           文
    2           李四         1           文
    3           王五         2           理(3 行受影响)
    */
    --另一种方法:
    select *,分科=(select 分科 from 班级类别 where 编号=t.班级编号) from [学生表]  t
    /*
    编号          姓名         班级编号        分科
    ----------- ---------- ----------- ----------
    1           张三         1           文
    2           李四         1           文
    3           王五         2           理(3 行受影响)
    */
      

  5.   

    if object_id('[学生表]') is not null drop table [学生表] 
     go 
    create table [学生表]([编号] int,[姓名] varchar(10),[班级编号] int)
    insert [学生表] select 1,'张三',1
    union all select 2,'李四',1
    union all select 3,'王五',2if object_id('[班级类别]') is not null drop table [班级类别] 
     go 
    create table [班级类别]([编号] int,[名称] varchar(10),[分科] varchar(10))
    insert [班级类别] select 1,'高三3班','文'
    union all select 2,'高二1班','理'
    union all select 3,'高二2班','理'select X.*,B.[分科] from [学生表] X join [班级类别] B on X.[班级编号]=B.[编号]
      

  6.   

    if object_id('[学生表]') is not null drop table [学生表] 
     go 
    create table [学生表]([编号] int,[姓名] varchar(10),[班级编号] int)
    insert [学生表] select 1,'张三',1
    union all select 2,'李四',1
    union all select 3,'王五',2if object_id('[班级类别]') is not null drop table [班级类别] 
     go 
    create table [班级类别]([编号] int,[名称] varchar(10),[分科] varchar(10))
    insert [班级类别] select 1,'高三3班','文'
    union all select 2,'高二1班','理'
    union all select 3,'高二2班','理'select X.*,B.[分科] from [学生表] X join [班级类别] B on X.[班级编号]=B.[编号]
    编号          姓名         班级编号        分科
    ----------- ---------- ----------- ----------
    1           张三         1           文
    2           李四         1           文
    3           王五         2           理(3 行受影响)
      

  7.   

    select 
      a.*,
      b.分科
    from 
      学生表 a
    left join
      班级类别 b
    on
      a.班级编号=b.编号
      
      

  8.   

    joogle收索: join ,left join ,right join 
      

  9.   

    应该多看研究一下SQL命令哟!select 
      xs.*,
      bj.分科
    from 
      学生表 xs join 班级类别 bj
    on xs.班级编号=bj.编号
      
      

  10.   


    select 学生表.*,班级类别.分科
    from 学生表
      join 班级类别
        on 学生表.班级编号=班级类别.编号或者是select 学生表.*,班级类别.分科
    from 学生表,班级类别
    where 学生表.班级编号=班级类别.编号
      

  11.   

    select a.*,b.分科
    from 学生表 as  a
      join 班级类别 as b
        on a.班级编号=b.编号