0

我正在使用 Pandasql 在 Python 中运行 SQL 查询。查询 x、y 和 z 工作正常,但 u 给出错误

x = pysql("select * from flight f left join iata i on f.ORIGIN = i.IATA;")

y = pysql("select * from flight f inner join iata i on f.ORIGIN = i.IATA;")

z = pysql("select * from flight, iata where flight.ORIGIN = iata.IATA;")

u = pysql("select * from flight f, iata i where f.ORIGIN = i.IATA;") 

错误信息是

PandaSQLException: (sqlite3.OperationalError) no such table: iata [SQL: 'select * from flight f, iata i where f.ORIGIN = i.IATA;']

问题:你怎么了?看起来我们可以在连接中使用别名而不提及左、右、内部等。这是真的吗?

4

2 回答 2

1

试试这个代码

u = pysql("SELECT * from flight f join iata i on (f.ORIGIN = i.IATA);")
于 2018-06-26T10:16:55.803 回答
1

因为在使用旧式连接时,您必须使用AS显式地为其加上别名

反而

select * from flight f, iata i where f.ORIGIN = i.IATA;

select * from flight AS f, iata AS i where f.ORIGIN = i.IATA;
于 2018-06-26T11:31:12.170 回答