不同的查询方法会有不同的结果

开发工具与关键技术:VS+不同的查询方法
作者: 李伙
撰写时间: 2019年4月23日

在MVC中,Linq查询也会分为几个不同的查询方法,不同的查询方法会有不同的结果,数据库中的查询也是可以分为几个不同的查询方法,但是数据库中的查询与Linq查询是基本一致的,只是写法不同。下面,我们来简单的认识一下几个不同的查询方法,
在这里插入图片描述 在这里插入图片描述
如上图所示:以班级表的班级ID作为主键与学生表的班级ID作为外键进行连接为例,左图的左边是班级表对应的数据,右边是学生表对应的数据。右图是内连接查询,INNER join:内连接查询,是取两张表中大家都有的数据,即取交集。如图中的“1”在班级表中是有数据的,而在学生表中是没有数据的,所以“1”就被排除掉,因为内连接是只取两张表中都有的数据。
在这里插入图片描述 在这里插入图片描述
如上图所示:也是以班级表的班级ID作为主键与学生表的班级ID作为外键进行连接为例,左图的左边是班级表对应的数据,右边是学生表对应的数据。右图则是左连接查询,left join:左连接查询,顾名思义是以左边的数据为准,即先把左边的数据查询出来,再把右边的数据查询出来,如果左边有数据,而右边没有其对应的数据就会用“null”来补齐,如果右边有数据,而左边没有其对应的数据就会把右边的数据排除掉。如图中的“1和4”在班级表中有数据,而在学生表中没有其对应的数据就会在学生表中用“null”来补齐。“7和8”在班级表中没有数据,而在学生表中有其对应的数据就会把学生表中的“7和8”的数据排除掉。
在这里插入图片描述 在这里插入图片描述
如上图所示:也是以班级表的班级ID作为主键与学生表的班级ID作为外键进行连接为例,左图的左边是班级表对应的数据,右边是学生表对应的数据。右图则是右连接查询,right join:右连接查询,,顾名思义是以右边的数据为准,即先把右边的数据查询出来,再把左边的数据查询出来,如果右边有数据,而左边没有其对应的数据就会用“null”来补齐,如果左边有数据,而右边没有其对应的数据就会把左边的数据排除掉。如图中的“1和4”在班级表中有数据,而在学生表中没有其对应的数据就会把班级表中的“1和4”的数据排除掉。“7和8”在班级表中没有数据,而在学生表中有其对应的数据就会在班级表中用“null”来补齐。
在这里插入图片描述 在这里插入图片描述
如上图所示:也是以班级表的班级ID作为主键与学生表的班级ID作为外键进行连接为例,左图的左边是班级表对应的数据,右边是学生表对应的数据。右图则是外连接查询,OUTER JOIN:外连接查询,是取两张表中的数据,即取并集,也就是说,左边有数据而右边没有其对应的数据就会用“null”来补齐;右边有数据而左边没有其对应的数据也会用“null”来补齐。如图中的“1和4”在班级表中有数据,而在学生表中没有其对应的数据就会在学生表中用“null”来补齐。“7和8”在班级表中没有数据,而在学生表中有其对应的数据就会在班级表中用“null”来补齐。外连接不是很常用。
而在数据库中的查询与Linq查询是基本一致的,只是写法不同。以左连接查询为例,数据库中是直接可以用left join来进行左连接查询的,而在MVC中,用left join是不可以查询出数据的,而且还会报错,先看看MVC中的左连接查询的代码:
在这里插入图片描述
如上图所示:Linq 左连接查询也是用到“join in”的,只是后面加上了“into”,这才是Linq左连接查询的正确写法,一定要注意在MVC中Linq左连接查询是不能直接用left join来进行查询的,而是用“into”。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值