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 ...
随机推荐
- 2.8 补充:shell脚本执行方法
bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本 ...
- 使用HTML5 Canvas API
一.检测浏览器支持情况 HTML5 Canvas的确是一个好东西,但是并不是所有浏览器都支持HTML5 Canvas的,这就要求我们在使用HTML5 Canvas前要检查浏览器是否支持这玩意儿. 在创 ...
- https://gitee.com/tomsun28/bootshiro-------需要研究的项目
https://gitee.com/tomsun28/bootshiro-------需要研究的项目
- jQuery WeUI 组件下拉刷新和滚动加载的实现
最近在做手机版使用到了下拉刷新和滚动加载,记录一下实现过程: 一.引入文件 ? 1 2 3 4 <link rel="stylesheet" href="Conte ...
- spark之scala快速入门
scala和java都是在jvm之上的语言,相对来讲,scala热度比较低,其实并不是一个特别好的语言选择. 原因倒不是因为scala本身的缺点,而是使用人群不够多,论坛和社区不够活跃.这就跟社交软件 ...
- 《Spring in action》之高级装配
1.Spring 通过配置profile bean.激活profile来设置对应环境. 配置profile bean: 可通过@Profile("dev")注解进行配置.也可以通过 ...
- nodejs 安装express
在命令行中执行 "npm install -g express"等待下载并且自动完成安装.测试express完成安装的一个方法就是查看其版本号,执行命令 “express -V”正 ...
- 【Nginx】进程模型
转自:网易博客 服务器的并发模型设计是网络编程中很关键的一个部分,服务器的并发量取决于两个因素,一个是提供服务的进程数量,另外一个是每个进程可同时处理的并发连接数量.相应的,服务器的并发模型也由两个部 ...
- 写给小白的JVM学习指南
Java 虚拟机是学习 Java 的基础,也是迈入高级 Java 开发工程师的必备知识点.所以今天这篇文章我们来聊聊如何从零开始学习 Java 虚拟机. 基础 对于刚刚接触 JVM 的同学来说,JVM ...
- 线段树专题 POJ3468 A Simple Problem with Integers
题意:n个点.m个操作.两种操作类型.C X Y K 表示区间[x,y]上每一个点值加k.Q X Y 求区间[x,y]的和 分析:线段树区间求和,裸模板 注意:结果会超int,要用long long ...