我要搞懂联接的概念
内联接: 左表的一行和右表的每一行进行比较, 如果左表的一行和右表的一行符合联接条件,则返回为结果集中的一行 ------ 等效于where条件
sql语法: select __ from __ inner join __ on __
linQ语法: from __ in __ join __ in __ on __ select __
结果集:
外联接 (跟内联接的区别是,外联结至少返回左边或右表中的所有行)
1.左向外联接: 返回左表的所有行,如果左表的某行在右表没有匹配行,则右表返回空,并组合成结果集中的一行,如果有则联接成结果集中的一行
语法: select __ from __ left outer join __ on __
结果集:
2.右向外联接:返回右表的所有行,如果右表的某行在左表没有匹配行,则左表返回空,并组合成结果集中的一行,如果有则联接成结果集中的一行
语法: select __ from __ right outer join __ on __
结果集:
3.完整外部联接:返回左表和右边的所有行;若不匹配,则一边有值,一边为空
语法: select __ from __ full outer join __ on __
结果集:
交叉联接:返回左表中的每一行,左表中的每一行与右表中的所有行组合,结果集的行数等于左表的行数乘右表的行数
语法: select __ from __ cross join __ on __
结果集:
自联接:和自身进行联接 语法: select __ from __ inner join __ on __
多表联接:
语法: select __ from __ inner join __ on __ inner join __ on __
sql语法: select __ from __ inner join __ on __
linQ语法: from __ in __ join __ in __ on __ select __
结果集:
外联接 (跟内联接的区别是,外联结至少返回左边或右表中的所有行)
1.左向外联接: 返回左表的所有行,如果左表的某行在右表没有匹配行,则右表返回空,并组合成结果集中的一行,如果有则联接成结果集中的一行
语法: select __ from __ left outer join __ on __
结果集:
2.右向外联接:返回右表的所有行,如果右表的某行在左表没有匹配行,则左表返回空,并组合成结果集中的一行,如果有则联接成结果集中的一行
语法: select __ from __ right outer join __ on __
结果集:
3.完整外部联接:返回左表和右边的所有行;若不匹配,则一边有值,一边为空
语法: select __ from __ full outer join __ on __
结果集:
交叉联接:返回左表中的每一行,左表中的每一行与右表中的所有行组合,结果集的行数等于左表的行数乘右表的行数
语法: select __ from __ cross join __ on __
结果集:
自联接:和自身进行联接 语法: select __ from __ inner join __ on __
多表联接:
语法: select __ from __ inner join __ on __ inner join __ on __