Day10—SQL那些事(特殊场景的查询)

文章目录

  • 1、只想查一个字段却不得不左连接好多张表
  • 2、左连接的时候只想取最后一条数据

1、只想查一个字段却不得不左连接好多张表

只想查一个字段却不得不左连接好多张表,而且因为左连接的表太多还导致查出来的数据重复

原先的sql

SELECTsph.po_num,chh.visa_exemption_flag 
FROMsodr_po_header sphLEFT JOIN sodr_po_line spl ON spl.po_header_id = sph.po_header_idLEFT JOIN cux_sprm_pr_line_hoc_assign csplha ON csplha.pr_line_id = spl.pr_line_idLEFT JOIN cux_hoc_header chh ON csplha.hoc_header_id = chh.hoc_header_id 
WHERE1 = 1 AND sph.po_header_id = '22993' AND sph.tenant_id = 38

在这里插入图片描述

优化后的

SELECT
sph.po_num,
(selectchh.visa_exemption_flag fromsodr_po_line spl LEFT JOIN cux_sprm_pr_line_hoc_assign csplha ON csplha.pr_line_id = spl.pr_line_id LEFT JOIN cux_hoc_header chh ON csplha.hoc_header_id = chh.hoc_header_id where spl.po_header_id  = sph.po_header_idlimit 1 ) as visa_exemption_flag 
FROMsodr_po_header sph
WHERE1 = 1 AND sph.po_header_id = '22993' AND sph.tenant_id = 38

2、左连接的时候只想取最后一条数据

改动前sql:左连接时会连接所有数据

SELECTsprl.*
FROMsprm_pr_line sprlLEFT JOIN cux_sprm_pr_line_hoc_assign splha ON sprl.pr_line_id = splha.pr_line_idLEFT JOIN cux_hoc_line hol ON splha.hoc_line_id = hol.line_id
WHEREsprl.pr_line_id = 257198

在这里插入图片描述

在这里插入图片描述

改动后的sql:左连接时连接最后一条更新的数据

SELECTsprl.*
FROMsprm_pr_line sprlLEFT JOIN (select hoc_line_id,pr_line_id,MAX(last_update_date) as last_update_date from cux_sprm_pr_line_hoc_assign GROUP BY pr_line_id) temp on temp.pr_line_id = sprl.pr_line_idLEFT JOIN cux_sprm_pr_line_hoc_assign splha ON (temp.pr_line_id = splha.pr_line_id AND splha.last_update_date=temp.last_update_date)LEFT JOIN cux_hoc_line hol ON splha.hoc_line_id = hol.line_id
WHEREsprl.pr_line_id = 257198

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/171768.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java网络编程之UDP协议

文章目录 UDP简介一发一收客户端:服务端: 多发多收实现多开客户端:服务端 UDP简介 UDP(User Datagram Protocol) DatagramSocket 用于创建客户端、服务端DatagramSocket() :创建客户端的Socket对象,系统随…

【React】Redux基本使用

什么情况使用 Redux ? Redux 适用于多交互、多数据源的场景。简单理解就是复杂 从组件角度去考虑的话,当我们有以下的应用场景时,我们可以尝试采用 Redux 来实现 某个组件的状态需要共享时 一个组件需要改变其他组件的状态时 一个组件需要…

SARAS多步TD目标算法

SARAS多步TD目标算法 代码仓库:https://github.com/daiyizheng/DL/tree/master/09-rl SARSA算法是on-policy 时序差分 在迭代的时候,我们基于 ϵ \epsilon ϵ-贪婪法在当前状态 S t S_t St​ 选择一个动作 A t A_t At​ ,然后会进入到下一个状态 S…

Vue基础必备掌握知识点-Vue的指令系统讲解

什么是Vue? Vue的概念 Vue是一个用于构建用户界面的渐进式框架(通过数据渲染出用户所能够看到的界面) Vue的两种使用方式 1:Vue核心包开发 场景:局部模块的改造 2:Vue核心包&Vue工程化的开发 场景:整站开发 Vue开发…

安装virt-manger虚拟机管理器

环境: redhat7:192.168.1.130 安装步骤: 安装qemu-kvm yum install -y qemu-kvm安装libvirt yum install -y libvirt重启libvirt systemctl restart libvirtd查看libvirt的版本信息 virsh version安装virt-manager yum install -y virt-manager检验…

OCR转换技巧:如何避免图片转Word时出现多余的换行?

在将图片中的文字识别转换为Word文档时,我们很多时候时会遇到识别内容的一个自然段还没结束就换行的问题,这些就是我们常说的多余换行的问题。为什么会产生这个问题呢?主要是由于OCR返回的识别结果是按图片上的文字换行而换行,而不…

知识竞赛中常用的物料有哪些

办一场知识竞赛,需要准备的物料要根据具体竞赛规则和流程来定。但是要仔细分析起来,还是可以做一个常用物料清单的,下面我将知识竞赛活动中常用的物料做了一个分类和列表,大家以后在竞赛活动举办过程中,可以参考。 一、…

【STM32】定时器+基本定时器

一、定时器的基本概述 1.软件定时器原理 原来我们使用51单片机的时候,是通过一个__nop()__来进行延时 我们通过软件的方式来进行延时功能是不准确的,受到很多不确定因素。 2.定时器原理:计数之间的比值 因为使用软件延时受到影响&#xff0c…

IntelliJ IDEA 安装 GitHub Copilot插件 (最新)

注意: GitHub Copilot 插件对IDEA最低版本要求是2021.2,建议直接用2023.3,一次到位反正后续要升级的。 各个版本的依赖关系,请参照: ##在线安装: 打开 IntelliJ IDEA扩展商店,输入 "Git…

HTML 之常用标签的介绍

文章目录 h标签p标签a标签img 标签table、tr、td标签ul、ol、li 标签div 标签 h标签 <h> 标签用于定义 HTML 文档中的标题&#xff0c;其中 h 后面跟着一个数字&#xff0c;表示标题的级别。HTML 提供了 <h1> 到 <h6> 六个不同级别的标题&#xff0c;其中 &…

[C++]Leetcode17电话号码的字母组合

题目描述 解题思路&#xff1a; 这是一个深度优先遍历的题目&#xff0c;涉及到多路递归&#xff0c;下面通过画图和解析来分析这道题。 首先说到的是映射关系&#xff0c;那么我们就可以通过一个字符串数组来表示映射关系&#xff08;字符串下标访问对应着数字映射到对应的…

打破语言壁垒,实现全球商贸:多语言多商户跨境商城源码引领电商新潮流

随着全球化的不断深入&#xff0c;电子商务的蓬勃发展&#xff0c;传统的单语言电商模式已经无法满足日益多元化的市场需求。多语言多商户跨境商城源码&#xff0c;一种创新的电商解决方案&#xff0c;应运而生。它打破了语言和地域的限制&#xff0c;让全球的商家和消费者都能…