Соединение двух таблиц с использованием pandasql - PullRequest
0 голосов
/ 26 июня 2018

Я выполняю SQL-запросы в Python, используя Pandasql. Запросы x, y и z работают нормально, но выдает ошибку

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 ]

0 голосов
/ 26 июня 2018

Поскольку вы должны явно указать псевдоним с 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;
0 голосов
/ 26 июня 2018

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

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