当前位置: 首页 > 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.dtcms.com/a/188906.html

相关文章:

  • EXCEL下拉菜单与交替上色设置
  • ElasticSeach快速上手笔记-入门篇
  • 为什么 import _ “github.com/go-sql-driver/mysql“ 要导入但不使用?_ 是什么意思?
  • 中电金信参编的国家标准《信息技术 中间件 消息中间件技术要求》正式发布
  • 1.3 不确定性分析
  • 云蝠智能大模型呼叫优势:技术驱动全链路升级,重塑智能交互服务新体验
  • 【JavaScript】原生 JavaScript 实现 localStorage 过期时间
  • ubuntu----100,常用命令2
  • 裸机开发的核心技术:轮询、中断与DMA
  • 定制化项目变更通知延误、流程失控?日事清用条件分支判断规范跨部门协作与变更管理流程
  • STM32 __main
  • Python实验2
  • win10 局域网内聊天
  • 《Python星球日记》 第67天:Transformer 架构与自注意力机制
  • vscode 同一个工作区,不同文件夹之间跳转问题
  • git 怎么更改本地的存储的密码
  • HCIP实验(BGP联邦实验)
  • Linux—进度条实现
  • upload-labs通关笔记-第4关 文件上传之.htacess绕过
  • FFmpeg3.4 libavcodec协议框架增加新的decode协议
  • HarmonyOS 【诗韵悠然】AI古诗词赏析APP开发实战从零到一系列(一、开篇,项目介绍)
  • 物理:由基本粒子组成的个体能否提炼和重组?
  • Realman RM65-B 六自由度超轻量仿人机械臂
  • openjdk底层汇编指令调用(三)——编码
  • CSS可以继承的样式汇总
  • 【fastadmin开发实战】在前端页面中使用bootstraptable以及表格中实现文件上传
  • 使用全局状态管理(Vuex)实现数据共享​
  • “新五强”争锋,基础大模型玩家再洗牌
  • RTSP有两套格式吗?
  • 从数据中台到数据飞轮:实现数据驱动的升级之路