select isNull(a.学号,''),IsNull(a.姓名,''),IsNull(b.课程号,''),IsNull(b.课程名,'') from Student a full join Course b on a.课程号=b.课程号
select 学号=isnull(a.学号,''),姓名 =isnull(a.姓名,'') ,课程号=isnull(b.课程号,''),课程名=isnull(b.课程名,'') from Student a full join Course b on a.课程号=b.课程号--如果学号,课程号是数字型,就用:select 学号=isnull(cast(a.学号 as varchar),''),姓名 =isnull(a.姓名,'') ,课程号=isnull(cast(b.课程号 as varchar),''),课程名=isnull(b.课程名,'') from Student a full join Course b on a.课程号=b.课程号
如上所述, 主要是用 full join 了。呵。
inner join,left join,right join我都明白 full join是啥意思?能解释一下么,谢谢!
FULL JOIN 或 FULL OUTER JOIN。 完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
select 学号=isnull(a.学号,''),姓名 =isnull(a.姓名,'') ,课程号=isnull(b.课程号,''),课程名=isnull(b.课程名,'') from Student a full join Course b on a.课程号=b.课程号
from Student a
full join Course b on a.课程号=b.课程号
,课程号=isnull(b.课程号,''),课程名=isnull(b.课程名,'')
from Student a
full join Course b on a.课程号=b.课程号--如果学号,课程号是数字型,就用:select 学号=isnull(cast(a.学号 as varchar),''),姓名 =isnull(a.姓名,'')
,课程号=isnull(cast(b.课程号 as varchar),''),课程名=isnull(b.课程名,'')
from Student a
full join Course b on a.课程号=b.课程号
full join是啥意思?能解释一下么,谢谢!
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
,课程号=isnull(b.课程号,''),课程名=isnull(b.课程名,'')
from Student a
full join Course b on a.课程号=b.课程号