python - 从多个表查询Python Mysql Connector

标签 python mysql connector

我有以下 SQL 查询:

SELECT
    pc.patente,
    cs.cpc_group_codigo_cpc_group

FROM
    patente_pc pc
    ,
    patente_cpc cpc,
    cpc_subgroup cs,
    cpc_group cg

WHERE
    pc.codigo_patente_pc = cpc.patente_pc_codigo_patente_pc AND
    cpc.cpc = cs.codigo_cpc_subgroup AND
    cs.cpc_group_codigo_cpc_group = cg.codigo_cpc_group

GROUP BY    
    pc.patente, cs.cpc_group_codigo_cpc_group

我将此查询添加到 python 中,逐行分隔元组中的字符串,以免语法出现问题。 并且执行正确

但是当我需要检索数据时,我使用

lista_cpcs = []
lista_patentes = []
for (pc.patente, cs.cpc_group_codigo_cpc_group) in cursor:
    lista_cpcs.append(cs.cpc_group_codigo_cpc_group)
    lista_patentes.append(pc.patente)

return [lista_cpcs, lista_patentes]

我收到错误全局名称“pc”未定义

我明白发生了什么,它将 pc 和 cs 解释为 python 模块,但它们来自 sql.. 如何从事这方面的工作? Ps:我搜索了 python mysql 连接器,但没有找到任何与此相关的内容。

最佳答案

for 循环中的变量:(pc.patente, cs.cpc_group_codigo_cpc_group) 是用户定义的;使用的名称与查询中的名称没有任何关系。因此,您可以随意调用它们。您可以考虑使用 (pc__patente, cs__cpc_group_codigo_cpc_group) 或其他东西。

问题在于 python 中的点表示法!= SQL 中的点表示法。

关于python - 从多个表查询Python Mysql Connector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38060383/

相关文章:

Python mysql 连接器加载语句在错误的目录 Windows 中搜索

java - 在 Java Maven 项目中通过 Spark 查询 Cassandra 中的数据

c# - MYSQL Connector.net 连接长时间后丢失

python - 无法在 macOS Sierra 上安装 wxPython

python - 将多个项目附加到 Python 中的列表列表中

python - 属性错误 : 'module' object has no attribute 'tests'

Java:使用PreparedStatement将多行插入MySQL

带有提示和默认隐藏的 Python 单击选项

mysql - 简单(?)MySQL 按查询分组

java - 找不到与限定符 'transactionManager' 匹配的 PlatformTransactionManager bean