SQL中联表的运用

当出现要大量数据去查询时,不要一个个去SQL查询,应该要批量的去查询。

def batch_cavity_query(self, fuseids):
“”“批量查询cavity信息”“”
if not fuseids:
return {}

# 创建临时表批量查询
try:# 创建临时表self.cursor.execute("CREATE TABLE #TempFuseIDs (fuseid VARCHAR(100))")# 批量插入数据self.cursor.executemany("INSERT INTO #TempFuseIDs VALUES (%s)", [(fid,) for fid in fuseids])query = """SELECT DA.qrc_fuseid,C.Barcode AS QRcode,L.qrc_fuseid AS LensData_FuseID,C.CavityFROM #TempFuseIDs tempLEFT JOIN A DAON temp.fuseid = DA.qrc_fuseidLEFT JOIN B LON DA.qrc_QRcode = L.qrc_QRcodeLEFT JOIN C CON L.qrc_fuseid = C.Barcode"""self.cursor.execute(query)results = self.cursor.fetchall()# 构建映射字典cavity_map = {}for row in results:fuseid = row[0]cavity_map[fuseid] = (row[1], row[2], row[3])return cavity_map
finally:self.cursor.execute("DROP TABLE #TempFuseIDs")
def batch_query_sn(self, fuseids):"""批量查询SN相关信息"""if not fuseids:return {}
try:# 创建临时表self.cursor.execute("CREATE TABLE #TempFuseIDs (fuseid VARCHAR(100))")self.cursor.executemany("INSERT INTO #TempFuseIDs VALUES (%s)", [(fid,) for fid in fuseids])query = """SELECT temp.fuseid,eqp_name,station_code,TRY_CAST(testres_main_test_recordposition3_ut_z AS FLOAT) - TRY_CAST(testres_main_test_recordposition2_ut_z AS FLOAT) AS offset,timeFROM #TempFuseIDs tempLEFT JOIN D  AAON AA.sensor_id = temp.fuseid"""self.cursor.execute(query)results = self.cursor.fetchall()sn_map = {}for row in results:fuseid = row[0]sn_map[fuseid] = (row[1], row[2], float(row[3]) if row[3] else 0, row[4])return sn_map
finally:self.cursor.execute("DROP TABLE #TempFuseIDs")

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

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

相关文章

React面试常问问题详解

以下是30个React面试中常见的问题及简要解析,涵盖基础概念、核心原理、性能优化、Hooks、状态管理等方面,适用于初中高级开发者准备面试时参考: 一、React 基础与核心概念 React 是什么? React 是由 Facebook 开发的用于构建用户界…

【vite好用的配置】自动导入组件、vue中的hook、路径解析、打包配置、本地运行反向代理配置

前言 之前出了一篇自己搭建 后台管理系统的文章,今天顺便把vite配置,涉及到的一些给大家分享吧。 按需食用哈。 文章目录 前言一、 自动导入vue中的hook、ref等1. 安装插件2. 配置 Vite(vite.config.ts 或 vite.config.js)1&…

思科(Cisco ASA/Firepower)、华三(H3C)、华为(Huawei USG)防火墙 的基础配置

以下是针对 思科(Cisco ASA/Firepower)、华三(H3C)、华为(Huawei USG)防火墙 的基础配置指南,涵盖 区域划分、安全策略、NAT、路由 等核心功能。配置示例基于通用场景,实际部署时需根…

mac latex vscode 配置

mac latex vscode 配置 安装mactex.pkg 这里有个快速下载的镜像 https://mirrors.aliyun.com/CTAN/systems/mac/mactex/ 可以检查是否将 PATH 写入 export PATH"/Library/TeX/texbin:$PATH"vscode 下载插件 Latex Workshop 在配置文件 settings.json 中输入如下的…

AI日报 · 2025年5月14日|Android 生态大型更新与多端 Gemini 集成

1、Google “Android Show: I/O Edition” 汇总:设计、安全、Gemini 三线并进 北京时间 5 月 14 日凌晨(原文标注 5 月 13 日 PDT),Google 在 I/O 前夕举办的 Android Show 一口气公布四大方向更新:① Mater…

MySQL入门指南:环境搭建与服务管理全流程

引言 各位开发者朋友们好!今天我们将开启MySQL的学习之旅 🌟 作为世界上最流行的开源关系型数据库,MySQL在Web应用、企业系统等领域占据着举足轻重的地位。无论你是刚入行的新手,还是想系统复习的老鸟,这篇教程都将为…

LLM 论文精读(四)LLM Post-Training: A Deep Dive into Reasoning Large Language Models

这是一篇2025年发表在arxiv中的LLM领域论文,是一篇非常全面的综述类论文,介绍了当前主流的强化学习方法在LLM上的应用,文章内容比较长,但建议LLM方面的从业人员反复认真阅读。 写在最前面 为了方便你的阅读,以下几点的…

从规则驱动到深度学习:自然语言生成的进化之路

自然语言生成技术正经历着人类文明史上最剧烈的认知革命。这项起源于图灵测试的技术,已经从简单的符号操作演变为具备语义理解能力的智能系统。当我们回溯其发展历程,看到的不仅是算法模型的迭代更新,更是一部人类认知自我突破的史诗。这场革…

如何实现Flask应用程序的安全性

在 Flask 应用中,确保安全性非常关键,尤其是当你将应用部署到公网环境中时。Flask 本身虽然轻量,但通过组合安全策略、扩展库和最佳实践,可以构建一个非常安全的 Web 应用。 一、常见 Flask 安全风险(必须防护) 安全问题 简要说明 CSRF(跨站请求伪造) 恶意网站诱导用户…

Chrome安装最新vue-devtool插件

本vue-devtool版本是官方的 v7.6.8版本,兼容性好、功能齐全且稳定。 操作步骤: 方法一: 打开谷歌浏览器 --> 右上角三个点 --> 扩展程序 --> 管理扩展程序 --> 加载已解压的扩展程序, 然后选择解压后的文件夹即可。…

【redis】jedis客户端的使用

Jedis是Redis官方推荐的Java客户端库,提供了对Redis数据库的全面支持,适用于单机、哨兵及集群模式。作为最老牌的Java Redis客户端,其API设计直观,与Redis命令高度对应,例如set、get等方法与原生命令一致,降…

Spark处理过程-转换算子

大家前面的课程,我们学习了Spark RDD的基础知识,知道了如何去创建RDD,那spark中具体有哪些rdd,它们有什么特点呢? 我们这节课来学习。 (一)RDD的处理过程 Spark使用Scala语言实现了RDD的API,程…

【Linux】多路转接epoll、Linux高并发I/O多路复用

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🅒 C 语言 | 🌐 计算机网络 上篇文章:五种IO模型与阻塞IO以及多路转接select机制编写echoserver 下篇文章…

【三维重建】三维场景生成:综述

标题:《3D Scene Generation: A Survey》 来源:新加坡南洋理工大学 项目:https://github.com/hzxie/Awesome-3D-Scene-Generation 文章目录 摘要一、前言二、准备工作2.1 任务定义2.2 三维场景表示2.3 生成模型 三、方法:分层分类…

前端~三维地图(cesium)动态材质飞线

自定义飞线材质 FlyLineMaterial.ts import * as Cesium from "cesium";// 修改:新增流动区域颜色和速率参数 const FlyLineShaderSource uniform vec4 color; uniform vec4 flowColor; uniform float percent; uniform float speed;czm_material czm…

[Spring AOP 8] Spring AOP 源码全流程总结

Spring AOP总结 更美观清晰的版本在:Github 前面的章节: [Spring AOP 1] 从零开始的JDK动态代理 [Spring AOP 2] 从零开始的CGLIB动态代理 [Spring AOP 3] Spring选择代理 [Spring AOP 4] Spring AOP 切点匹配 [Spring AOP 5] 高级切面与低级切面&#…

C#高级编程:加密解密

在数字化时代,数据安全是每个应用程序都必须重视的环节。无论是用户的个人信息、敏感的商业数据,还是重要的系统配置,都需要得到妥善的保护。C# 作为一种广泛应用的编程语言,提供了丰富且强大的加密解密功能,帮助开发者构建安全可靠的应用。本文将深入探讨 C# 高级编程中的…

基于运动补偿的前景检测算法

这段代码实现了基于运动补偿的前景检测算法。 主要功能包括: 运动补偿模块:使用基于网格的 KLT 特征跟踪算法计算两帧之间的运动,然后通过单应性变换实现帧间运动补偿。前景检测模块:结合两帧运动补偿结果,通过帧间差…

使用matlab进行数据拟合

目录 一、工作区建立数据 二、曲线拟合器(在"APP"中) 三、曲线拟合函数及参数 四、 在matlab中编写代码 一、工作区建立数据 首先,将数据在matlab工作区中生成。如图1所示: 图 1 二、曲线拟合器(在"APP"中) 然后,…

Playwright 安装配置文件详解

Playwright 安装&配置文件详解 环境准备 Node.js 14.0(推荐 LTS 版本)npm(推荐使用最新版)支持 Windows、macOS、Linux 一步到位的官方推荐安装方式 1. 进入你的项目目录 # Windows cd 路径\到\你的项目 # macOS/Linux cd…