日期:2014-05-18  浏览次数:20586 次

SQL中外键为空
有两张表A,B
其中A中有一个主键id,一个外键fid
id     fid
1         101
2         102
3         103
4         null
B表中也有一个主键为fid,以及一个fname
fid     fname
101     武汉
102     长沙
103     黄冈
现在要将A表中的id和B表中的fname显示出来
要显示成如下形式
id     fname
1         武汉
2         长沙
3         黄冈
4         null     (关键是要显示这一行)
就是说,如果fid对应为null的话,该行还是要显示出来,这样SQL   怎么写了

------解决方案--------------------
select a.id,b.fname from a left join b on a.fid=b.fid

------解决方案--------------------
create table A(id int,fid int)
create table B(fid int,fname varchar(20))
insert A select 1,101
union all select 2,102
union all select 3,103
union all select 4,104

insert B select 101, '武汉 '
union all select 102, '长沙 '
union all select 103, '黄冈 '

select A.id,B.fname from A left join B on A.fid=B.fid

id fname
----------- --------------------
1 武汉
2 长沙
3 黄冈
4 NULL

(所影响的行数为 4 行)