You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:24:04