我有一个Jupyter笔记本,我要在其中执行查询。我正在使用sqlalchemy,如果我在PyCharm中将其作为脚本运行,则以下代码可以正常工作:
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mysql+mysqlconnector://user:password@server_address:3306/DBase', echo=False)
connection = engine.connect()
query = "SELECT week(date) as week, count(*) FROM table GROUP BY week"
df = pd.read_sql(query, con=engine)
print(df)
但是,当我尝试在Jupyter笔记本中运行此程序时,会出现错误:
ProgrammingError:(mysql.connector.errors.ProgrammingError)1059 (42000):标识符名称“ SELECT week(date)as week,count(*)FROM 表GROUP BY week'太长了
当我尝试
query = "SELECT count(*) as number FROM table"
它确实可以正常工作。一旦在查询中添加一些语句,它将引发错误。 我不确定为什么它专门抱怨标识符。这似乎不是由于“ AS”引起的,因为如果我忽略该错误并添加WHERE语句,它也会抛出错误。 有什么建议吗?
答案 0 :(得分:1)
而不是使用它:
df = pd.read_sql(query, con=engine)
您应该使用此:
df = pd.read_sql_query(query, con=engine)
您查询以某种方式得到治疗的SQL表的名字,当你调用read_sql
,之所以说是未知的,我和我也找不到它的一个原因from the documentation。