MySQL 连接器无法使用 table 别名

MySQL Connector not working with table aliases

我在 python 脚本中使用 mysql.connector。 当我尝试执行具有 tables 别名的脚本时 - 它无法执行并给出错误 "unknown column 'column_name' in 'field_list'"。

两个 table 都有同名的字段,所以我不能不使用别名。

代码:

query = ("SELECT ti.itemno, ti.active FROM text_item AS ti"
         "INNER JOIN text_itemmember AS tim ON tim.itemno = ti.itemno;")
cursor.execute(query)

在 table 名称 ("text_item") 上替换别名 "ti" 时出现相同的错误。 我找不到有关不使用别名的连接器的任何信息。

我该如何解决这个问题?

您需要在 table 别名后加上 space,例如:

query = ("SELECT ti.itemno, ti.active FROM text_item AS ti "
         "INNER JOIN text_itemmember AS tim ON tim.itemno = ti.itemno")
cursor.execute(query)

Python combines 相邻的字符串文字合并为一个,因此您实际上有 'tiINNER' 作为别名。