Python中执行SQL查询出现join附近语法错误问题咨询
问题修复方案
你遇到的near "join": syntax error报错是SQL子句顺序错误导致的:WHERE过滤条件不能放在JOIN关联子句之前,这不符合SQL语法规范。
标准SQL查询的核心子句顺序为:
SELECT:指定查询返回的字段FROM:指定查询主表JOIN+ON:指定关联表和关联条件WHERE:指定过滤条件- 后续可选
GROUP BY、HAVING、ORDER BY等子句
你只需要调整原查询里JOIN和WHERE的位置即可,同时建议给city字段加上表别名前缀避免两个表存在同名字段时出现歧义,修正后的查询语句为:"select t.*, b.distance from tenantsdb t join buildingsdb b on t.Address = b.Street_Address where t.city = 'city';"
完整修正后代码如下:
import pandas as pd import sqlite3 as sql path1 = r'C:\file.xlsx' path2 = r'C:\file2.xlsx' tenants = pd.read_excel(path1, sheet_name='1') buildings = pd.read_excel(path2) db = sql.connect('temp.db') tenants.to_sql('tenantsdb', db) buildings.to_sql('buildingsdb', db) # 调整了JOIN和WHERE的顺序,给city增加了表别名前缀 Query = pd.read_sql("select t.*, b.distance from tenantsdb t join buildingsdb b on t.Address = b.Street_Address where t.city = 'city';", db) db.close()
内容的提问来源于stack exchange,提问作者ToddE
相关产品推荐
相关产品推荐

