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

news2024/9/21 18:24:07

文章目录

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

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

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

原先的sql

SELECT
	sph.po_num,
	chh.visa_exemption_flag 
FROM
	sodr_po_header sph
	LEFT JOIN sodr_po_line spl ON spl.po_header_id = sph.po_header_id
	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
	1 = 1 
	AND sph.po_header_id = '22993' 
	AND sph.tenant_id = 38

在这里插入图片描述

优化后的

SELECT
sph.po_num,
(select
			chh.visa_exemption_flag 
			from
				sodr_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_id
			limit 1 ) as visa_exemption_flag 
FROM
	sodr_po_header sph
WHERE
	1 = 1 
	AND sph.po_header_id = '22993' 
	AND sph.tenant_id = 38

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

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

SELECT
	sprl.*
FROM
	sprm_pr_line sprl
	LEFT JOIN cux_sprm_pr_line_hoc_assign splha ON sprl.pr_line_id = splha.pr_line_id
	LEFT JOIN cux_hoc_line hol ON splha.hoc_line_id = hol.line_id
WHERE
	sprl.pr_line_id = 257198

在这里插入图片描述

在这里插入图片描述

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

SELECT
	sprl.*
FROM
	sprm_pr_line sprl
	LEFT 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_id
	LEFT 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
WHERE
	sprl.pr_line_id = 257198

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rust语言入门:理解基础语法

大家好,我是[lincyang]。 今天,我们将深入了解Rust编程语言的基础语法,为你打下坚实的Rust编程基础。 Rust简介 Rust是一种系统编程语言,它注重内存安全、并发性和实用性。Rust的设计哲学是提供安全性,而不损失性能。它…

什么是智能井盖?万宾科技的智能井盖传感器的效果

近年来为打造智慧城市政府一直在不懈努力。加速城市基础建设是一项重要的举措,它有助于推动城市综合治理城市生命线的建设工程。在改善市民生活质量的过程中,市政部门正积极进行井盖的改进和升级工作,特别是那些看似微不足道的井盖却蕴含着重…

一篇文章搞明白js运行机制——事件循环

1、解释 JavaScript 的执行机制。 JavaScript 的执行机制基于事件循环。事件循环包括一个任务队列(Task Queue)和一个微任务队列(Microtask Queue)。当一个函数被调用时,它被添加到微任务队列中。事件循环每次迭代都会…

分布式数据库Schema 变更 in F1 TiDB

分布式数据库Schema 变更 in F1 & TiDB 【转载】TiDB 源码阅读系列文章(十七)DDL 源码解析 | PingCAP 上述文章主要叙述了从DDL语句发起到执行的过程,简单介绍了弄一套相同的模式来后台处理数据回填,从而提高DDL的并发度的一…

Excel函数-将A1中的字符串剔除B1中的字符串

比如A2中是类型单位,B2中是单位,在C2中体现A2-B2的结果,即大米 公式:SUBSTITUTE(A2,B2,“”) SUBSTITUTE函数功能:将字符串中的部分字符用新字符替换,替换序号忽略说明进行全部替换 结构:SUB…

如何加密RAR压缩文件?

如何使用WinRAR加密压缩包?详细介绍WinRAR中的三种加密方法给大家。 方法一:加密 最简单的加密方法,就是在加密文件时输入想要设置的密码,完成加密和压缩了。 方法二:自动加密 普通的加密方式,需要我们加…

NC65 客户、供应商、人员等基本信息校验唯一性规则的设置

NC65 客户、供应商、人员等基本信息校验唯一性规则的设置 供应商名称唯一校验,很容易导致重名的无法保存,那如何设置得如下图提示的按名称基本分类纳税人登记号等校验规则呢? 答:使用 admin 账号登录,然后在基础数据…

基于《环境影响评价技术导则大气环境(HJ 2.2-2018)》的AERMOD模型配置方法

数值模式模拟是分析大气污染物时空分布和成分贡献的重要工具,利用模拟结果可以分析大气污染的来源、成因、污染程度、持续时间、主要成分、相对贡献等问题,有助于分析并合理控制污染源排放,为产业调整提供参考。当前,针对不同理论…

51单片机应用从零开始(二)

目录 1. 什么是单片机系统 1.1 单片机本身 1.2 构成单片机系统——单片机外围器件 2. 如何控制一个发光二极管 2.1 硬件设计(系统电路图 ) 2.2 硬件设计(搭建硬件电路的器材 ) 2.3 软件设计(中文描述的程…

JAVA基础:子父类关系里的实例创建流程

实验类: 📎A.javahttps://www.yuque.com/attachments/yuque/0/2023/java/21609500/1699858993581-1df32da6-8360-4a98-aa1b-d9a59d3b2d76.java 📎B.javahttps://www.yuque.com/attachments/yuque/0/2023/java/21609500/1699858998289-d9e31…

做职业规划,离不开职业兴趣和职业性格测评

每天上班,但是没有动力,职业很迷茫是典型的症状,如果这个症状持续超过2周,那么这个问题就值得思考了。比如昨天就遇到过一个朋友说,希望自己能早点改变这个现状..... 有这个想法是非常正确的,职业规划越早…

RK3568驱动指南|第七期-设备树-第65章 设备树下platform_device和platform_driver匹配实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

深入探讨跨境电商商城源码的多语言、多货币、多商户入驻支持“

随着全球电子商务的飞速发展,跨境电商已成为一股不可忽视的力量。在这个背景下,为跨境电商商城源码提供多语言、多货币、多商户入驻支持显得尤为重要。本文将深入探讨这三大特性的实现方式及其对跨境电商发展的影响。 一、多语言支持 对于跨境电商来说&a…

Outlook如何删除邮箱账户

Outlook如何删除邮箱账户 说明: 最近有用户询问到“我的Outlook登陆了很多个邮箱账号,不知道怎么退出”接下来将具体操作步骤加以说明 操作指引: 1、首先打开Outlook该软件,然后点击“文件” 2、点击账户设置下拉菜单 3、在下拉…

SSM德庆县乡村教育图书管理系统-计算机毕设 附源码 24668

SSM德庆县乡村教育图书管理系统 摘 要 大数据时代下,数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势。在德庆县乡村教育图书管理的要求下&…

海思平台awb标定

文章目录 1、raw图采集2、awb标定3、标定效果优化1、raw图采集 raw图采集标准: 如果raw是12bit,即raw12,那么Block9 块的亮度就是40960.8 = 3276.8左右。 勾上Dump Raw,我这里raw10,即Depth为10bit,那么Block19的亮度应该为10240.8 = 819.2左右,调整曝光Exposure Attr…

制造业工厂MES系统中的设备管理模块

随时工厂数字化建设的大力推进,设备管理的效率得到了很大的提升,特别是作为机加工企业,设备是整个企业非常重要的核心资产。下面是万界星空科技MES系统中的设备管理模块介绍: 1、MES设备管理任务模型 制造企业总是期望设备能够在…

LED显示屏老化知识

LED显示屏老化是指长时间使用后,LED显示屏性能逐渐下降和衰减的过程。虽然LED显示屏具有较长的寿命和良好的稳定性,但长期使用和环境因素会导致一定程度的老化现象。 LED显示屏为什么会老化 1. 亮度衰减:LED显示屏使用时间越长,LE…

消失的它:摆脱 SwiftUI 中“嵌入视图数量不能超过 10 个”限制的秘密

概览 SwiftUI 带来了描述性界面布局的新玩法,让我们可以超轻松的创建复杂应用界面。但是在早期 SwiftUI 中有一个“著名”的限制大家知道么?那就是 ViewBuilder 中嵌入子视图数量不能超过 10 个! 不过,从 Swift 5.9 开始这一“桎…

PHP判断扫码支付扫码条码支付宝微信区分

微信&#xff1a;用户付款码规则&#xff1a;18位纯数字&#xff0c;前缀以10、11、12、13、14、15开头 支付宝&#xff1a;25~30开头的长度为16~24位的数字&#xff0c;实际字符串长度以开发者获取的付款码长度为准 <?php /*** 判断扫码支付的方式* param string $code 扫…