左右外关联是一种数据库里多表查询的连接方式。举例说明他们的区别吧。如果你有个学生表,有个成绩表,通过学生id相关联。如果某个学生id在成绩表里没有对应关系,即没有成绩,那么,普通的连接查询将不会这个学生。而如果你采用学生表左外连接成绩表,则只要是学生表里有的学生的数据都会显示,如果成绩表里没有该数据,则查询结果会显示为空。右外查询跟左外查询一样,只不过基准是右表而已。(如图所示)
表a
aid aname
1 a1
2 a2
3 a3
表b
bid bname
1 b1
2 b2
4 b4
内联:select from a inner join b on aaid=bbid
result:
1 a1 b1
2 a2 b2
左联:select from a left join b on aaid=bbid
result:
1 a1 b1
2 a2 b2
3 a3 空字符
右联:select from a right join b on aaid=bbid
result:
1 a1 b1
2 a2 b2
4 空字符 b4
1、意思不一样
左连接:只要左边表中有记录,数据就能检索出来,而右边有的记录必要在左边表中有的记录才能被检索出来。
右连接:右连接是只要右边表中有记录,数据就能检索出来。
2、空值不一样
左连接是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空。
右联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
左连接实例
在左外连接和右外连接时都会以一张表为基表,该表的内容会全部显示,然后加上两张表匹配的内容。如果基表的数据在另一张表没有记录。那么在相关联的结果集行中列显示为空值(NULL)。
对于外连接, 也可以使用“(+) ”来表示。 关于使用(+)的一些注意事项:
1、(+) *** 作符只能出现在where子句中,并且不能与outer join语法同时使用。
2、当使用(+) *** 作符执行外连接时,如果在where子句中包含有多个条件,则必须在所有条件中都包含(+) *** 作符。
百度百科-外连接
1、左外连接:
用左外连接,指查询出来的是在右表中没有对应左表中的记录以及符合条件(cid=ocustomer_id)的数据,比如:
customers为左表,orders为右表
select cid,ocustomer_id,cname,oid order_id,order_number from customers c left outer join orders o on cid=ocustomer_id;
2、右外连接:
正好和左外连接相反,查询出来的结果是在左表中没有对应的项和以及符合条件(cid=ocustomer_id)的数据
以上就是关于数据库中的左右外联啥意思具体什么时候使用全部的内容,包括:数据库中的左右外联啥意思具体什么时候使用、13) 数据库的内连接,左外连接,右外连接的区别,试举例。、SQL中的左连接与右连接有什么区别,点解返回值会不同等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)