sqlserver内连接和外连接,左外连接和右外连接的区别
内连接是指保证两个表中的所有行都满足连接条件。 外连接不仅包括满足连接条件的行,还包括左表、右表或两个边缘连接表中的所有数据行。
内连接:连接的结果中只包含满足连接条件的行,参与连接的两个表必须满足连接条件。
外连接:连接结果不仅包括满足连接条件的行,还包括自身不满足条件的行。 包括左外部连接、右外部连接、全外部连接。
左外连接:保留左表中的所有数据行,右表中保留满足连接条件的行。
右外连接:保留右表中的所有数据行,左表中保留满足连接条件的行。
全外连接:保留所有行。
示例:
表TESTA、TESTB、TESTC,分别有a、b两列。
a .内部连接
内连接,最常见的等效连接,例如:
选择*
FROM TESTA,TESTB
WHERE TESTA.A=TESTB.A
b .外部连接
外部连接分为左外部连接、右外部连接和全外部连接。
1 .在左外连接左输出或左输出
左外连接是指在主表中不匹配的数据上添加等效连接。 示例:
选择*
来自testa
LEFT OUTER JOIN TESTB
ON TESTA.A=TESTB.A
将三个表格设置为左外链接:
选择*
来自testa
LEFT OUTER JOIN TESTB
ON TESTA.A=TESTB.A
LEFT OUTER JOIN TESTC
ON TESTA.A=TESTC.A
2 .在右外连接right outer join或right join
右外连接是在等价连接上添加了被连接表的不匹配数据
选择*
来自testa
RIGHT OUTER JOIN TESTB
ON TESTA.A=TESTB.A
在全外部连接完全输出或完全输出
全外连接是基于等效连接将左表和右表中不匹配的数据相加。
选择*
来自testa
FULL OUTER JOIN TESTB
ON TESTA.A=TESTB.A
阅读原文