当前位置: 首页 > news >正文

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

在这里插入图片描述

相关文章:

  • YOLO V1中关于bounding boxs的部分要点
  • Azure 机器学习 - 有关为 Azure 机器学习配置 Kubernetes 群集的参考
  • 云计算运维面试
  • 拍摄视频的时候相机断电导致视频文件损坏,怎么修复
  • 一文了解芯片测试项目和检测方法 -纳米软件
  • 图像二值化阈值调整——Triangle算法,Maxentropy方法
  • 粤嵌实训医疗项目--day06(Vue + SpringBoot)
  • 2023年云计算的发展趋势
  • 取暖器/暖风机上架 亚马逊美国站UL1278测试标准要求
  • activiti命令模式与责任链模式
  • DDoS攻击剧增,深入解析抗DDoS防护方案
  • 设计模式之模版方法(TemplateMethod)
  • Spring Boot 整合xxl-job实现分布式定时任务
  • STM32GPIO——上拉、下拉电阻
  • uniapp在IOS手机下解决时间nan-an-nan问题
  • 【剑指offer】让抽象问题具体化
  • 【译】理解JavaScript:new 关键字
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Intervention/image 图片处理扩展包的安装和使用
  • java2019面试题北京
  • JavaScript服务器推送技术之 WebSocket
  • JavaWeb(学习笔记二)
  • Laravel Telescope:优雅的应用调试工具
  • Laravel核心解读--Facades
  • Magento 1.x 中文订单打印乱码
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • V4L2视频输入框架概述
  • Vue ES6 Jade Scss Webpack Gulp
  • 当SetTimeout遇到了字符串
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 高性能JavaScript阅读简记(三)
  • 关于字符编码你应该知道的事情
  • 解决iview多表头动态更改列元素发生的错误
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 项目管理碎碎念系列之一:干系人管理
  • ionic入门之数据绑定显示-1
  • # 飞书APP集成平台-数字化落地
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)c++ std::pair 与 std::make
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .NET连接MongoDB数据库实例教程
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @WebService和@WebMethod注解的用法
  • [3300万人的聊天室] 作为产品的上游公司该如何?