表一(子项目)表:
ID parentID  adminID
1     1       1
2     1       0
3     1       2
4     2       0表二(admin)表:
adminID  adminname
1           张三
2           李四如果表一adminID 字段中用0代表无管理员(0在表二中无对应记录),那么怎么建立一个查询可以列出所有父项parentID=1的记录及对应管理员名字信息
即要求查询结果如下:子项ID   管理员
1         张三
2         无
3         李四

解决方案 »

  1.   

    select 
        a.ID,isnull(b.adminname,'无') 
    from 
        表一 a 
    left join
        表二 b
    on
        a.adminID=b.adminID
    where
        a.parentID=1
      

  2.   

    select A.ID AS 子项ID,B.adminName as 管理员 from 表1 LEFT OUTER JOIN 表二
    ON A.AdminID = B.ADMIN ID WHERE A.ParentID = 1
      

  3.   

    select A.ID AS 子项ID,ISNULL(B.adminName,'无') as 管理员 from 表1 LEFT OUTER JOIN 表二
    ON A.AdminID = B.ADMIN ID WHERE A.ParentID = 1
      

  4.   

    declare @t1 table(ID int,parentID int,adminID int)
    insert into @t1 select 1,1,1
    insert into @t1 select 2,1,0
    insert into @t1 select 3,1,2
    insert into @t1 select 4,2,0declare @t2 table(adminID int,adminname varchar(10))
    insert into @t2 select 1,'张三'
    insert into @t2 select 2,'李四'select 
        a.ID as 子项ID ,
        isnull(b.adminname,'无') as 管理员 
    from 
        @t1 a 
    left join
        @t2 b
    on
        a.adminID=b.adminID
    where
        a.parentID=1/*
    子项ID        管理员        
    ----------- ---------- 
    1           张三
    2           无
    3           李四
    */
      

  5.   

    SELECT 表1.ID as id, 表2.adminname
    FROM 表1 LEFT JOIN 表2 ON 表1.adminID = 表2.adminID
    where 表1.parentID=1;
      

  6.   

    if object_id('pubs..表一') is not null
       drop table 表一
    gocreate table 表一
    (
    ID int,
    parentID int,
    adminID int
    )insert into 表一(ID,parentID,adminID) values(1,1,1)
    insert into 表一(ID,parentID,adminID) values(2,1,0)
    insert into 表一(ID,parentID,adminID) values(3,1,2)
    insert into 表一(ID,parentID,adminID) values(4,2,0)if object_id('pubs..表二') is not null
       drop table 表二
    gocreate table 表二
    (
    adminID  int,
    adminname varchar(10)
    )insert into 表二(adminID,adminname) values(1,'张三')
    insert into 表二(adminID,adminname) values(2,'李四')select a.id as 子项ID, isnull(b.adminname,'无') as 管理员 
    from 
     (
       select * from 表一 where parentid = 1
     ) a 
    left join 表二 b on a.adminid = b.adminiddrop table 表二
    drop table 表一子项ID        管理员        
    ----------- ---------- 
    1           张三
    2           无
    3           李四(所影响的行数为 3 行)
      

  7.   

    if object_id('pubs..表一') is not null
       drop table 表一
    gocreate table 表一
    (
    ID int,
    parentID int,
    adminID int
    )insert into 表一(ID,parentID,adminID) values(1,1,1)
    insert into 表一(ID,parentID,adminID) values(2,1,0)
    insert into 表一(ID,parentID,adminID) values(3,1,2)
    insert into 表一(ID,parentID,adminID) values(4,2,0)if object_id('pubs..表二') is not null
       drop table 表二
    gocreate table 表二
    (
    adminID  int,
    adminname varchar(10)
    )insert into 表二(adminID,adminname) values(1,'张三')
    insert into 表二(adminID,adminname) values(2,'李四')select a.id as 子项ID, isnull(b.adminname,'无') as 管理员 
    from 表一 a left join 表二 b on a.adminid = b.adminid
    where a.parentid = 1drop table 表二
    drop table 表一子项ID        管理员        
    ----------- ---------- 
    1           张三
    2           无
    3           李四(所影响的行数为 3 行)