C#两个表多条件关联写法
文章目录
- C#两个表多条件关联写法
- 两个表实体类准备
- 实体类数据初始化
- 第一种 sql的左关联
- 第二种相当于sql的 INNER JOIN
- 写法一:FROM a FROM b where 多条件关联
- 写法二: FROM JOIN INTO
- 写法三: FROM JOIN 省略into
C#两个表多条件关联写法
两个表实体类准备
public class OtherIn{public string AfterOrderNo { get; set; }public long MaterialId { get; set; }public string MaterNumber { get; set; }public long Qty { get; set; }public string Note { get; set; }}public class AfterInfo{public string AfterOrderNo { get; set; }public long MaterialId { get; set; }public string MaterNumber { get; set; }public long AfterQty { get; set; }public string Note { get; set; }}
实体类数据初始化
List<OtherIn> getOtherInGroup = new List<OtherIn>();getOtherInGroup.Add(new OtherIn { AfterOrderNo= "SH231025001",MaterialId=100001,MaterNumber="CTG001",Qty=2});getOtherInGroup.Add(new OtherIn{AfterOrderNo = "SH231025001",MaterialId = 100002,MaterNumber = "CTG002",Qty = 3});getOtherInGroup.Add(new OtherIn{AfterOrderNo = "SH231025002",MaterialId = 100002,MaterNumber = "CTG002",Qty = 4});List<AfterInfo> getAfterGroup = new List<AfterInfo>();getAfterGroup.Add(new AfterInfo {AfterOrderNo = "SH231025002",MaterialId = 100002,MaterNumber = "CTG002",AfterQty = 5});getAfterGroup.Add(new AfterInfo{AfterOrderNo = "SH231025001",MaterialId = 100001,MaterNumber = "CTG001",AfterQty = 1});
第一种 sql的左关联
FROM a JOIN b on 组合键关联 into 临时表 from 临时表(左关联不上右边默认为空)
var getExcessGroup = from a in getOtherInGroupjoin b in getAfterGroup on new { a.AfterOrderNo, a.MaterialId } equals new { b.AfterOrderNo,b.MaterialId }into resultfrom c in result.DefaultIfEmpty()select new{AfterOrderNo = a.AfterOrderNo,MaterialId=a.MaterialId,Qty = a.Qty,AfterQty = c == null ? 0 : c.AfterQty};
结果
第二种相当于sql的 INNER JOIN
写法一:FROM a FROM b where 多条件关联
var getExcessGroup2 = from a in getOtherInGroupfrom b in getAfterGroupwhere a.AfterOrderNo == b.AfterOrderNo && a.MaterialId == b.MaterialIdselect new{AfterOrderNo = a.AfterOrderNo,MaterialId = a.MaterialId,Qty = a.Qty,AfterQty = b == null ? 0 : b.AfterQty};
结果
写法二: FROM JOIN INTO
FROM a JOIN b on 组合键关联 into 临时表 from 临时表(不默认为空)
var getExcessGroup1 = from a in getOtherInGroupjoin b in getAfterGroup on new { a.AfterOrderNo, a.MaterialId } equals new { b.AfterOrderNo, b.MaterialId }into resultfrom c in resultselect new{AfterOrderNo = a.AfterOrderNo,MaterialId = a.MaterialId,Qty = a.Qty,AfterQty = c == null ? 0 : c.AfterQty};
结果
写法三: FROM JOIN 省略into
var getExcessGroup11 = from a in getOtherInGroupjoin b in getAfterGroup on new { a.AfterOrderNo, a.MaterialId } equals new { b.AfterOrderNo, b.MaterialId }select new{AfterOrderNo = a.AfterOrderNo,MaterialId = a.MaterialId,Qty = a.Qty,AfterQty = b.AfterQty};
结果
相关文章:

C#两个表多条件关联写法
文章目录 C#两个表多条件关联写法两个表实体类准备实体类数据初始化第一种 sql的左关联第二种相当于sql的 INNER JOIN写法一:FROM a FROM b where 多条件关联写法二: FROM JOIN INTO写法三: FROM JOIN 省略into C#两个表多条件关联写法 两个…...

VSCode-C/C++环境配置
0.下载VSCode VSCode官网 Visual Studio Code - Code Editing. Redefined 1.安装VSCode 2.编译器下载与配置 2.1下载编译器安装包 编译器的安装包分为两种一种是在线的一种是离线的,其区别的特点如下 在线安装(只是个下载器,打开后还要下载各种东西…...

第八周实验记录
10月20日-10月22日工作: 复现S-NeRF代码,按照github的步骤进行,首先使用一个RTX3090显卡, 在下图步骤中:运行最后一步 python scripts/run.py 出现问题 继续使用两张RTX3090显卡尝试,依旧在这一步出现问…...

Spring Cloud Alibaba Seata 实现 SAGA 事物
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案 Seata 官网:https://seata.io/zh-cn/ Spring Cloud Alibaba 官…...

npm install报错,解决记录
第一步:检查和安装 我这里建议检查 1.node.js版本是否和前使用版本一致 2.npm版本是否和前使用版本一致 3.vue版本是否和前使用版本一致 4.vue脚手架是否和前使用版本一致 5.npm镜像是否和前使用版本一致 1.检查版本 【node版本】 命令:node -v 结果&a…...

LSM树原理详解
LSM树(Log-Structured-Merge-Tree)的名字往往会给初识者一个错误的印象,事实上,LSM树并不像B树、红黑树一样是一颗严格的树状数据结构,它其实是一种存储结构,目前HBase,LevelDB,RocksDB这些NoSQL存储都是采用的LSM树。 LSM树的核…...

Linux系统编程_网络编程:字节序、socket、serverclient、ftp 云盘
1. 网络编程概述(444.1) TCP/UDP对比 TCP 面向连接(如打电话要先拨号建立连接);UDP 是无连接的,即发送数据之前不需要建立连接TCP 提供可靠的服务。也就是说,通过 TCP 连接传送的数据…...

队列(8.6)
目录 2.队列 2.1队列的概念及结构 2.2队列的实现 2.2.1初始化队列 2.2.2队尾入队列 2.2.3队头出队列 2.2.4获取队列头部元素 2.2.5 销毁队列 3.栈和队列面试题 225. 用队列实现栈 - 力扣(LeetCode) 232. 用栈实现队列 - 力扣(LeetC…...

计算机网络 第四章网络层
文章目录 1 网络层的功能2 数据交换方式:电路交换3 数据交换方式:报文交换4 数据交换方式:分组交换5 数据交换方式:数据报方式6 数据交换方式:虚电路方式及各种方式对比7 路由算法及路由协议8 IP数据报的概念和格式9 I…...

操作系统运行机制
文章目录 操作系统运行机制特权指令VS非特权指令内核态VS用户态中断和异常内中断(异常)外中断中断机制基本原理中断处理过程 系统调用系统调用和库函数的区别为什系统调用时必须的?什么功能需要用到系统调用系统调用的过程小结 操作系统内核 操作系统运行机制 特权…...

mathtype7.4破解永久激活码
MathType(数学公式编辑器)是由Design Science公司研发的一款专业的数学公式编辑工具。MathType功能非常强大,尤其适用于专门研究数学领域的人群使用。使用MathType让你在输入数学公式的时候能够更加的得心应手,各种复杂的运算符号也不在话下。 MathType最…...

66 内网安全-域横向批量atschtasksimpacket
目录 演示案例:横向渗透明文传递at&schtasks 案例2-横向渗透明文HASH传递atexec-impacket案例3-横向渗透明文HASH传递批量利用-综合案例5-探针主机域控架构服务操作演示 传递攻击是建立在明文和hash值的一个获取基础上的攻击,也是在内网里面常见协议的攻击&…...

PCI9054入门1:硬件引脚定义、时序、FPGA端驱动源码
文章目录 1:PCI9054的FPGA侧(local侧引脚定义)2:PCI9054的C模式下的读写时序3:FPGA代码部分具体代码: 1:PCI9054的FPGA侧(local侧引脚定义) 而PCI9054的本地总线端的主要…...

多媒体应用设计师 第17章 多媒体应用场景的技术应用和实现示例
口诀 思维导图 2020...
react151618刷新几次的问题
结论: 16 hooks版本 默认render1次 同步中,无论多少种类还是次数,都render 1次。 异步中,无论多少种类还是次数,1个种类执行1次,多次的话,用n*2。 18 hooks版本 默认render2次, 同步…...

【Spring】IOC容器与Bean的常用属性配置
文章目录 1.前言2.IOC容器2.1 BeanFactory 容器2.2 ApplicationContext 容器 3.Bean的常用属性配置4. 总结 1.前言 在之前的文章-IOC的快速入门中讲过Bean这个概念. 本来就来介绍容器与Bean的常用属性配置 在Spring框架中,Bean指的是被Spring加载生成出来的对象。 …...

2023年下半年 系统集成项目管理工程师 真题考点(一二三四批次)(10月28、29)(网友回忆版)
文章目录 第一批部分考点整体管理采购管理风险管理二:EAC 第二批部分考点如下: 第三批部分考点如下: 第一批 部分考点 1、案例考了关键路径和工期,风险管理、采购、风险、招投标,整体管理。 2、计算题有关键路径和挣…...
读韩都衣舍,谈权力转移的激励制度
这是一个很久之前的商业案例。 在大公司,管理过于复杂,成了现在公司管理的大问题。大公司的流程长,市场的突击速度慢,以及员工的积极性差,成为大公司的一个潜在的弊病。而最近,从韩都衣舍的创始人赵迎光的…...

私有云:【10】VCenter安装win10
私有云:【10】VCenter安装win10 1、ESXI挂载win10镜像2、VCenter安装win102.1、创建虚拟机2.2、启动虚拟机 此WIN10用来作为以后的远程桌面 1、ESXI挂载win10镜像 2、VCenter安装win10 2.1、创建虚拟机 创建虚拟机 设置名称下一步 选择计算机资源 选择NFS存储 设置…...

[Java/力扣100]判断两棵二叉树是否相同
我希望通过这道题,能进一步了解递归思想和“树是递归定义的”这句话 分析 我们的目的是写一个方法来检验两棵树是否相同 什么叫“两棵树相同”?——相同的位置存在相同的结点 有三种情况:1、两棵树一颗为空一颗不为空——不相同ÿ…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...