使用 pandasql 连接两个表
Joining two tables using pandasql
我在 运行 SQL 中使用 Pandasql 在 Python 中进行查询。查询 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;")
错误信息是
熊猫SQL异常:(sqlite3.OperationalError)没有这样的table:iata [SQL:'select * from flight f, iata i where f.ORIGIN = i.IATA;']
问题: 你怎么了?看起来我们可以在联接中使用别名而无需提及左、右、内等。这是真的吗?
试试这个代码
u = pysql("SELECT * from flight f join iata i on (f.ORIGIN = i.IATA);")
因为在使用旧式连接时必须使用 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;
我在 运行 SQL 中使用 Pandasql 在 Python 中进行查询。查询 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;")
错误信息是
熊猫SQL异常:(sqlite3.OperationalError)没有这样的table:iata [SQL:'select * from flight f, iata i where f.ORIGIN = i.IATA;']
问题: 你怎么了?看起来我们可以在联接中使用别名而无需提及左、右、内等。这是真的吗?
试试这个代码
u = pysql("SELECT * from flight f join iata i on (f.ORIGIN = i.IATA);")
因为在使用旧式连接时必须使用 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;