Python 2.7 如何使用sqlparser将SQL查询和子查询解析为python
要解析sql连接查询,请选择sub query into python。我正在使用sqlparse库。但我无法解析子查询。如何解析整个查询 e、 g:Python 2.7 如何使用sqlparser将SQL查询和子查询解析为python,python-2.7,Python 2.7,要解析sql连接查询,请选择sub query into python。我正在使用sqlparse库。但我无法解析子查询。如何解析整个查询 e、 g: 我无法解析此从res\u partner中选择名称,其中id=1子查询。不太优雅,但可以: import sqlparse from sqlparse.sql import Where, Comparison, Parenthesis query = """ select id,fname,lname,address from
我无法解析此
从res\u partner中选择名称,其中id=1
子查询。不太优雅,但可以:
import sqlparse
from sqlparse.sql import Where, Comparison, Parenthesis
query = """
select
id,fname,lname,address
from
res_users as r
left join
res_partner as p
on
p.id=r.partner_id
where
name = (select name from res_partner where id = 1)"""
query_tokens = sqlparse.parse(query)[0]
where = next(token for token in query_tokens.tokens if isinstance(token, Where))
condition = next(token for token in where.tokens if isinstance(token, Comparison))
subquery = next(token for token in condition.tokens if isinstance(token, Parenthesis))
print subquery
印刷品:
(select name from res_partner where id = 1)
这个库可以解析和生成SQL
(select name from res_partner where id = 1)