有两张表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 行)