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

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.xdnf.cn/news/417979.html

相关文章:

  • OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——mqtt库
  • WSL 安装 Debian 12 后,Linux 如何安装 nginx ?
  • Boby家族之Smart Boby:你的智能编程助手
  • YOLOv11融合[AAAI2025]的PConv模块
  • [51单片机]---DS18B20 温度检测
  • 第六节第二部分:抽象类的应用-模板方法设计模式
  • vim 练习题
  • 苍穹外卖--新增菜品
  • 按键精灵ios脚本新增元素功能助力辅助工具开发(一)
  • 机器学习07-归一化与标准化
  • mybatis中${}和#{}的区别
  • 【RabbitMQ】工作队列和发布/订阅模式的具体实现
  • 微服务八股(自用)
  • React Native告别图标体积大手动更换慢的噩梦:让图标更新像修改文字一样简单
  • 聊一聊Electron中Chromium多进程架构
  • 数据结构day1
  • 使用 IntelliJ IDEA 和 Maven 创建 Spark 项目
  • 云原生|kubernetes|kubernetes的etcd集群备份策略
  • 高防服务器部署实战:从IP隐匿到协议混淆
  • Scala和Go差异
  • 【面试 · 三】react大集合(类式/函数式)
  • 需求与技术实现不匹配,如何协调
  • 【 Redis | 实战篇 秒杀实现 】
  • 在虚拟机Ubuntu18.04中安装NS2教程及应用
  • Spark SQL 读取 CSV 文件,并将数据写入 MySQL 数据库
  • niushop单商户V5多门店版V5.5.0全插件+商品称重、商家手机端+搭建环境教程
  • Unity引擎源码-物理系统详解-其一
  • centos中libc.so.6No such file的解决方式
  • AI+企业应用级PPT生成(实战)
  • 初识XML