首页 > 解决方案 > Python 和 MySQL 中的数据透视表

问题描述

我正在尝试使用 python 从 mysql 中的 2 个表中查找数据。这是我到目前为止所拥有的,但它给出了错误“没有要从中获取的结果集”。我想是因为我嵌套了 fetchall()

sqlu = "SELECT mob, contact, email, sms, quota FROM vonuser"
sqlq = "SELECT mobile, date, SUM(data) FROM mobtab GROUP BY date, mobile"
mycursori.execute(sqlq)
mycursoru.execute(sqlu)
for rowu in mycursoru.fetchall():
  print(rowu[0], rowu[1], rowu[2], rowu[3], rowu[4])
  for rowi in mycursori.fetchall():
    if int(rowi[2]) > var:
      print(rowi[0], rowi[1], rowi[2], '***overusage***')
    else:
      print(rowi[0], rowi[1], rowi[2])

我不确定如何执行这种类型的查找。提前致谢,

标签: pythonmysql

解决方案


我想通了,希望这对其他人有用。

我改变了,这个: -

sqlu = "SELECT mob, contact, email, sms, quota FROM vonuser"
sqlq = "SELECT mobile, date, SUM(data) FROM mobtab GROUP BY date, mobile"
mycursori.execute(sqlq)
mycursoru.execute(sqlu)
for rowu in mycursoru.fetchall():
  print(rowu[0], rowu[1], rowu[2], rowu[3], rowu[4])
  for rowi in mycursori.fetchall():
    if int(rowi[2]) > var:
      print(rowi[0], rowi[1], rowi[2], '***overusage***')
    else:
      print(rowi[0], rowi[1], rowi[2])

对此:

sqlu = "SELECT mob, contact, email, sms, quota FROM vonuser"
sqlq = "SELECT mobile, date, SUM(data) FROM mobtab GROUP BY date, mobile"
mycursoru.execute(sqlu)
for rowu in mycursoru.fetchall():
  print(rowu[0], rowu[1], rowu[2], rowu[3], rowu[4])
  mycursori.execute(sqlq) # moved this to here
  for rowi in mycursori.fetchall():
    if int(rowi[2]) > var:
      print(rowi[0], rowi[1], rowi[2], '***overusage***')
    else:
      print(rowi[0], rowi[1], rowi[2])

推荐阅读