当前位置: 首页 > 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")

相关文章:

  • 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协议
  • 甘肃发布外卖食品安全违法行为典型案例:一商家用鸭肉冒充牛肉被罚
  • 美国4月CPI同比上涨2.3%低于预期,为2021年2月来最小涨幅
  • 法治课|争议中的“行人安全距离”于法无据,考量“注意义务”才更合理
  • 这个“超强致癌细菌”,宝宝感染率高达40%,预防却很简单
  • 广西壮族自治区党委政法委副书记李文博接受审查调查
  • 巫蛊:文化的历史暗流