Linq学习(四)-联合查询
一、本将主要介绍
Union、Concat、Intersect、Except的使用操作
1.Union
查询昵称中带有Friend和带有Lee的用户
Linq
(from a in Blog_Users where a.NickName.Contains("Lee") select a)
.Union
(from a in Blog_Users where a.NickName.Contains("Friend") select a)
sql
-- Region Parameters
DECLARE @p0 NVarChar(1000) = '%Lee%'
DECLARE @p1 NVarChar(1000) = '%Friend%'
-- EndRegion
SELECT [t2].[UserId], [t2].[NickName], [t2].[CreateTime]
FROM (
SELECT [t0].[UserId], [t0].[NickName], [t0].[CreateTime]
FROM [Blog_User] AS [t0]
WHERE [t0].[NickName] LIKE @p0
UNION
SELECT [t1].[UserId], [t1].[NickName], [t1].[CreateTime]
FROM [Blog_User] AS [t1]
WHERE [t1].[NickName] LIKE @p1
) AS [t2]
Lambda
Blog_Users
.Where (a => a.NickName.Contains ("Lee"))
.Union (
Blog_Users
.Where (a => a.NickName.Contains ("Friend"))
)
2.Concat
查询昵称中带有Friend和昵称中带有Lee的用户,相同的用户信息不过滤
Linq to sql
(from a in Blog_Users where a.NickName.Contains("Friend") select a)
.Concat
(from a in Blog_Users where a.NickName.Contains("Lee") select a)
sql
-- Region Parameters
DECLARE @p0 NVarChar(1000) = '%Friend%'
DECLARE @p1 NVarChar(1000) = '%Lee%'
-- EndRegion
SELECT [t2].[UserId], [t2].[NickName], [t2].[CreateTime]
FROM (
SELECT [t0].[UserId], [t0].[NickName], [t0].[CreateTime]
FROM [Blog_User] AS [t0]
WHERE [t0].[NickName] LIKE @p0
UNION ALL
SELECT [t1].[UserId], [t1].[NickName], [t1].[CreateTime]
FROM [Blog_User] AS [t1]
WHERE [t1].[NickName] LIKE @p1
) AS [t2]
Lambda
Blog_Users
.Where (a => a.NickName.Contains ("Friend"))
.Concat (
Blog_Users
.Where (a => a.NickName.Contains ("Lee"))
)
3.Intersect(交集)
查询昵称中带有Friend的,且昵称中带有Lee的用户
Linq to sql
(from a in Blog_Users where a.NickName.Contains("Friend") select a)
.Intersect
(from a in Blog_Users where a.NickName.Contains("Lee") select a)
sql
-- Region Parameters
DECLARE @p0 NVarChar(1000) = '%Lee%'
DECLARE @p1 NVarChar(1000) = '%Friend%'
-- EndRegion
SELECT DISTINCT [t0].[UserId], [t0].[NickName], [t0].[CreateTime]
FROM [Blog_User] AS [t0]
WHERE (EXISTS(
SELECT NULL AS [EMPTY]
FROM [Blog_User] AS [t1]
WHERE ([t0].[UserId] = [t1].[UserId]) AND ([t1].[NickName] LIKE @p0)
)) AND ([t0].[NickName] LIKE @p1)
Lambda
Blog_Users
.Where (a => a.NickName.Contains ("Friend"))
.Intersect (
Blog_Users
.Where (a => a.NickName.Contains ("Lee"))
)
4.Except(排除交集)
查询昵称中带有Friend,并从中删除昵称中带有Zhao的用户
Linq to sql
(from a in Blog_Users where a.NickName.Contains("Friend") select a)
.Except
(from a in Blog_Users where a.NickName.Contains("Zhao") select a)
sql
-- Region Parameters
DECLARE @p0 NVarChar(1000) = '%Zhao%'
DECLARE @p1 NVarChar(1000) = '%Friend%'
-- EndRegion
SELECT DISTINCT [t0].[UserId], [t0].[NickName], [t0].[CreateTime]
FROM [Blog_User] AS [t0]
WHERE (NOT (EXISTS(
SELECT NULL AS [EMPTY]
FROM [Blog_User] AS [t1]
WHERE ([t0].[UserId] = [t1].[UserId]) AND ([t1].[NickName] LIKE @p0)
))) AND ([t0].[NickName] LIKE @p1)
Lambda
Blog_Users
.Where (a => a.NickName.Contains ("Friend"))
.Except (
Blog_Users
.Where (a => a.NickName.Contains ("Zhao"))
)
Linq学习(四)-联合查询的更多相关文章
- Linq学习<四> linq to XML
LINQ to XML并不打算替代标准的XML API,例如,XML DOM(Document Object Model).Path.XQuery和XSLT等.如果熟悉这些API或当前需要使用或学习它 ...
- Linq学习(三)-基本查询
一.本将主要介绍内容 从linq,sql,lambda三个角度比较来学习 select.orderby.分页.group by.distinct.子查询.in的用法 1.select 查询用户和它们的 ...
- LINQ,EF联合查询join
public object GetListAdmin() { //return db_C56.Admins // .Where(a => a.Status != "D") ...
- Linq一对多联合查询
问题: 学生表,班级表,我要班级下面学生 A表,字段:AID,CLASSB表,字段 :BID,BNAME,AIDA表数据1 班级12 班级2B表数据1 学生1 12 学生2 1 3 学生3 24 学生 ...
- MongoDB 学习四 : 查询(续)
接着上章,继续介绍MongoDB的查询. Querying on Embedded Documents 有两种方式查询嵌入式的子Documents:查询整个Document或者查询个别的键值对. 查询 ...
- Linq多表联合查询,在View中绑定数据
Ⅰ→通过ViewData传递数据,不过需要新建一个类(用来存) NewClass(里面有表1的字段和表2的字段) public class JoinTab1_2 { public int ID { g ...
- mybatis学习 十四 resultMap标签 一对一(联合查询)
1.使用 resultMap 实现关联单个对象(联合查询方式) <resultMap type="Student" id="stuMap1"> &l ...
- Linq学习之旅——LINQ查询表达式
1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. 概述 ...
- Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新
CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 ...
随机推荐
- No buffer space available错误解决方案
生产环境,突然爆发问题,网络正常,但是报网络不通错误,重启tomcat立刻好使 开始以为是tomcat的问题,调查了很久,后来加上堆栈日志才发现 简单来说,就是1-4分钟之内,使用了大量的http请求 ...
- 【Codeforces 493C】Vasya and Basketball
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 枚举三分线(离散后)的位置 然后根据预处理的前缀和,快速算出两个队伍的分数. [代码] #include <bits/stdc++.h& ...
- Mysql SQL查询今天、昨天、n天内、第n天------https://blog.csdn.net/baidu_27222643/article/details/60467585
Mysql SQL查询今天.昨天.n天内.第n天 https://blog.csdn.net/baidu_27222643/article/details/60467585
- [luoguP1516] 青蛙的约会(扩展欧几里得)
传送门 对于数论只会gcd的我,也要下定决心补数论了 列出方程 (x + t * m) % l = (y + t * n) % l 那么假设 这两个式子之间相差 num 个 l,即为 x + t * ...
- noip模拟赛 罪犯分组
分析:看了题后没别的思路,感觉就是dp,普通dp的话状态和方程实在是不好设计,观察数据,发现N非常小,暗示了这道题要用状压dp来做. 先枚举每个集合,再用O(n^2)的暴力看这个集合内有多少个冲突,如 ...
- 5-45 航空公司VIP客户查询 (25分) HASH
不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务.现给定某航空公司全体会员的飞行记录,要求实现根据身份证号码快速查询会员里程积分 ...
- yum 源本地化 (one)
First of all, you need to prepare the rpm packages, we can download them with yum command, in that w ...
- 修改PostgreSQL数据库的默认用户postgres的密码
有时候,忘记了postgresql 安装时默认用户postgres 的密码,怎么办呢? linux shell命令下面输入: sudo -u postgres psql (这样就可以直接登录进pos ...
- 一份关于jvm内存调优及原理的学习笔记(转)
JVM 一.虚拟机的基本结构 1.jvm整体架构 类加载子系统:负责从文件系统或者网络中加载class信息,存入方法区中. 方法区(Perm):存放加载后的class信息,包括静态方法,jdk1.6以 ...
- 大话USB驱动之总线驱动程序
转载注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25040009 总线驱动是不用改的.内核都帮我们做好了.为了了解整个USB驱动的体 ...