表A
ID     NAME
1       外国语系
2       计算机系表B
ID       NAME      AID
1        张三      1
2        李四      2
3        王五      3
查询所有学生的姓名和所在系,如果不存在的系就请标明“未标志”???(其中B.AID=A.ID)

解决方案 »

  1.   

    select b.name as 姓名,isnull(a.name,'未标志') as 系
    from b
    left join a on a.id=b.aid
      

  2.   

    select b.id,b.name,isnull(a.id,'为标志') as aid
    from b
    left join a on b.aid=a.id
      

  3.   

    --> 数据库版本:
    --> Microsoft SQL Server 2008 (RTM) - 10.0.1600.22
    --> 测试数据:表A
    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'表A') 
    AND type in (N'U')) 
    DROP TABLE 表A
    GO---->建表
    create table 表A([ID] int,[NAME] varchar(8))
    insert 表A
    select 1,'外国语系' union all
    select 2,'计算机系'
    GO
    --> 数据库版本:
    --> Microsoft SQL Server 2008 (RTM) - 10.0.1600.22
    --> 测试数据:表B
    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'表B') 
    AND type in (N'U')) 
    DROP TABLE 表B
    GO---->建表
    create table 表B([ID] int,[NAME] varchar(4),[AID] int)
    insert 表B
    select 1,'张三',1 union all
    select 2,'李四',2 union all
    select 3,'王五',3
    GO--> 查询结果
    SELECT * FROM 表A
    --> 删除表格
    --DROP TABLE 表A
    --> 查询结果
    SELECT B.NAME,ISNULL(A.NAME,'未标志')  AS 所在系
    FROM 表B B left join 表A A on B.AID=A.ID
    --> 删除表格  
    --DROP TABLE 表B