代码之家  ›  专栏  ›  技术社区  ›  Display Name is missing

使用pandasql连接两个表

  •  0
  • Display Name is missing  · 技术社区  · 6 年前

    我使用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)没有这样的表:iata[sql:'select*from flight f,iata i,其中f.origin=i.iata;']

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

    2 回复  |  直到 6 年前
        1
  •  1
  •   Livius    6 年前

    因为你必须用 使用旧样式联接时

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

    select * from flight AS f, iata AS i where f.ORIGIN = i.IATA;
    
        2
  •  0
  •   O_o    6 年前

    尝试此代码

    u = pysql("SELECT * from flight f join iata i on (f.ORIGIN = i.IATA);")