A 表
ID liuchengID liuchengName
1 A021 收到项目确认函
2 A022 收到合同(PO)
11 B041 抽样培训
12 B042 抽样进度表
B 表
liuchengID sss
A021 张三
显示成这个样子 ID liuchengID liuchengName statss
1 A021 收到项目确认函 张三
2 A022 收到合同(PO) 没有
11 B041 抽样培训 没有
12 B042 抽样进度表 没有查找
如果B表没有关于A表相同的 则显示没有 如果B表有关于A表的 则显示B表的sss
ID liuchengID liuchengName
1 A021 收到项目确认函
2 A022 收到合同(PO)
11 B041 抽样培训
12 B042 抽样进度表
B 表
liuchengID sss
A021 张三
显示成这个样子 ID liuchengID liuchengName statss
1 A021 收到项目确认函 张三
2 A022 收到合同(PO) 没有
11 B041 抽样培训 没有
12 B042 抽样进度表 没有查找
如果B表没有关于A表相同的 则显示没有 如果B表有关于A表的 则显示B表的sss
select A.*,isnull(b.sss,'没有') as statss
from A left join B on A.liuchengID = b.liuchengID
select ta.*,ISNULL(tb.sss,'没有')
from ta left join tb on ta.liuchengID=tb.liuchengID
insert into a values(1 , 'A021' , '收到项目确认函')
insert into a values(2 , 'A022' , '收到合同(PO)')
insert into a values(11, 'B041' , '抽样培训')
insert into a values(12, 'B042' , '抽样进度表')
create table B(liuchengID varchar(10), sss varchar(10))
insert into b values('A021' , '张三')
goselect a.* , isnull(b.sss,'没有') statss from a left join b on a.liuchengID = b.liuchengIDdrop table a , b/*
ID liuchengID liuchengName statss
----------- ---------- -------------------- ----------
1 A021 收到项目确认函 张三
2 A022 收到合同(PO) 没有
11 B041 抽样培训 没有
12 B042 抽样进度表 没有(所影响的行数为 4 行)*/
from a
left join b
on a.liuchengID=b.liuchengID
SELECT a.*,
statss = ISNULL(b.sss,'没有')
FROM a
LEFT JOIN b
ON a.liuchengID = b.[liuchengID]
/*
ID liuchengID liuchengName statss
----------- ---------- -------------------- ----------
1 A021 收到项目确认函 张三
2 A022 收到合同(PO) 没有
11 B041 抽样培训 没有
12 B042 抽样进度表 没有(4 行受影响)
*/
--2005
SELECT a.*,
statss = ISNULL(c.sss,'没有')
FROM a
OUTER APPLY (SELECT sss FROM b where a.liuchengID = b.[liuchengID]) c
/*
ID liuchengID liuchengName statss
----------- ---------- -------------------- ----------
1 A021 收到项目确认函 张三
2 A022 收到合同(PO) 没有
11 B041 抽样培训 没有
12 B042 抽样进度表 没有(4 行受影响)
*/