Linq的左右联查
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Visual Studio/ Linq查询
作者:戴伟雄
撰写时间:2019年4月1日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Linq是一种查询数据的方法
如果是这种简单的单表查询数据的话
一个接收数据的变量 图中strUserName 然后第一行from是 你查询数据的源数据 意思就是你要在
myModel.pw_student 这个里面去查询。我这里是连到数据库的表
第二行是你查询的条件 这个根据你的需求添加条件,我这里是源数据的某某ID和页面传过来的ID相等
它就会把相等的数据查出来
第三行是你需要查什么。把你需要的东西从源数据查出来。我这里是需要它的名字。然后Single意思是一条数据。我这里根据ID做的查询肯定是一条数据。
单表查询总的来说就是先你要到哪里查,下面就是你要查询的条件,然后就是你要查的数据。单表查询还是很容易理解的一个过程
连表查询连一张表就是多了一行操作,我这里是连接了四张表。Join 后面是先自己取个名字来代表你要连的那张表然后in后面是你需要连接的表 在然后 on 后面就是连接的条件 equals 意思是等于,我这里的条件就是:上面那个表” tbModular.某个ID” 等于现在这个表 ”tbModularDetail.某个ID”
连表查是可以无限连的,但必须两个表之间有着联系起来的关系。就是 on 后面的条件
这里说到了连查那我们就说一下今天的“左连”和“右连”是什么意思。先看一下是怎么写的就是在连表查询后面加个“into”后面就是你自己定义一个变量用来接收吧
这个左连接意思就是 以左边的表为主 这里表现的就是按书写循序以上面那张表为左,就是查如果左表里面有的数据下面这张连查的表中也有那么就将两张表都有的数据查出来,还有就是左表有的数据下面这张连表没有那就用 null 来补全,null是空的意思
反之右连接就是以右表为主进行查询,但我们一般用左连接因为左右连接可以相互转换,把两张表的循序换一下就行
就像这from tbTemp in varLinq1
join tbModular in myModel.SYS_Modular 样换一下两张表的循序其他的不要变就可以得到你想右连的数据
这里除了左连和右连 其实还有内连和外连,内连就是把两张表都有的数据查出来如果这张表有那张表没有就筛选掉,外连就是将两张表所有的数据查询出来,如果这张表有那张没有就补null也要查出来。
(注:代码来自于施老师教学)