表一(子项目)表:
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 李四
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 李四
a.ID,isnull(b.adminname,'无')
from
表一 a
left join
表二 b
on
a.adminID=b.adminID
where
a.parentID=1
ON A.AdminID = B.ADMIN ID WHERE A.ParentID = 1
ON A.AdminID = B.ADMIN ID WHERE A.ParentID = 1
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 李四
*/
FROM 表1 LEFT JOIN 表2 ON 表1.adminID = 表2.adminID
where 表1.parentID=1;
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 行)
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 行)