一、本将主要介绍

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学习(四)-联合查询的更多相关文章

  1. Linq学习<四> linq to XML

    LINQ to XML并不打算替代标准的XML API,例如,XML DOM(Document Object Model).Path.XQuery和XSLT等.如果熟悉这些API或当前需要使用或学习它 ...

  2. Linq学习(三)-基本查询

    一.本将主要介绍内容 从linq,sql,lambda三个角度比较来学习 select.orderby.分页.group by.distinct.子查询.in的用法 1.select 查询用户和它们的 ...

  3. LINQ,EF联合查询join

    public object GetListAdmin() { //return db_C56.Admins //   .Where(a => a.Status != "D") ...

  4. Linq一对多联合查询

    问题: 学生表,班级表,我要班级下面学生 A表,字段:AID,CLASSB表,字段 :BID,BNAME,AIDA表数据1 班级12 班级2B表数据1 学生1 12 学生2 1 3 学生3 24 学生 ...

  5. MongoDB 学习四 : 查询(续)

    接着上章,继续介绍MongoDB的查询. Querying on Embedded Documents 有两种方式查询嵌入式的子Documents:查询整个Document或者查询个别的键值对. 查询 ...

  6. Linq多表联合查询,在View中绑定数据

    Ⅰ→通过ViewData传递数据,不过需要新建一个类(用来存) NewClass(里面有表1的字段和表2的字段) public class JoinTab1_2 { public int ID { g ...

  7. mybatis学习 十四 resultMap标签 一对一(联合查询)

    1.使用 resultMap 实现关联单个对象(联合查询方式) <resultMap type="Student" id="stuMap1"> &l ...

  8. Linq学习之旅——LINQ查询表达式

    1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. 概述 ...

  9. Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新

    CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 ...

随机推荐

  1. BZOJ 3993 Luogu P3324 [SDOI2015]星际战争 (最大流、二分答案)

    字符串终于告一段落了! 题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=3993 (luogu) https://www.l ...

  2. Java基础学习总结(80)——Java性能优化详解

    让Java应用程序运行是一回事,但让他们跑得快就是另外一回事了.在面对对象的环境中,性能问题就像来势凶猛的野兽.但JVM的复杂性将性能调整的复杂程度增加了一个级别.这里Refcard涵盖了JVM in ...

  3. 阿里巴巴json包 --------fastjson

    fastjson对null的处理----String str2 = JSONObject.toJSONString(jsonMap, SerializerFeature.WriteMapNullVal ...

  4. git删除远程remote分支

    git 命令如下: git push origin --delete <远程分支名字>

  5. noip模拟赛 洗澡

    分析:首先肯定是要用线性筛把素数全部给筛出来的,然后可以维护一个前缀和数组记录1~i个素数的和,对于每一个询问可以从n到1+k枚举它的右端点,然后利用前缀和统计一个长度为K的区间和,看看是不是满足条件 ...

  6. noip模拟赛 水管工的难题

    [问题描述]你是一名优秀的水管工. 一天你遇到了一个棘手的难题. 你需要在一个长方体状的房间内连接一条贯穿房间内部的水管.房间的长为 X,宽为 Y,高为 Z, 整个房间可以看成是 X×Y×Z个小立方体 ...

  7. 特种部队(codevs 1427)

    题目描述 Description 某特种部队接到一个任务,需要潜入一个仓库.该部队士兵分为两路,第一路士兵已经在正面牵制住了敌人,第二路士兵正在悄悄地从后方秘密潜入敌人的仓库.当他们到达仓库时候,发现 ...

  8. O - Treats for the Cows 区间DP

    FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for giving vast am ...

  9. logout退出功能是怎么实现的?login登陆功能室怎么实现的

    logout退出功能是怎么实现的?login登陆功能室怎么实现的 login就是登陆成功的时候,在session里面创建好用户对应的数据. logout就是登出的时候,在session里面销毁用户对应 ...

  10. Android Studio 开发利器【经常使用插件】

    1.ADB Idea ADB操作快捷菜单.高速清除数据,重新启动应用,卸载应用等 快捷键: Windows: Ctrl+Alt+Shift+A Mac OSX: Ctrl+Shift+A 当然,你能够 ...