Объединение двух таблиц с помощью pandasql

Я запускаю SQL-запросы в Python, используя Pandasql. Запросы 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: 'выбрать * из рейса f, iata i, где f.ORIGIN = i.IATA;']

Вопрос: что с тобой не так? Похоже, мы можем использовать псевдонимы в объединении без упоминания левого, правого, внутреннего и т. д. Это правда?


person Display Name is missing    schedule 26.06.2018    source источник


Ответы (2)


Потому что вы должны явно использовать псевдоним 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;
person Livius    schedule 26.06.2018

Попробуйте этот код

u = pysql("SELECT * from flight f join iata i on (f.ORIGIN = i.IATA);")
person Franklinn Bincom    schedule 26.06.2018