2016-02-09 3 views

ответ

1

Это более или менее то, что вы могли бы сделать:

from sqlalchemy import create_engine, text 
engine = create_engine('postgresql://user:[email protected]/somedb') 
q1 = "SELECT name FROM table_a intersect SELECT name FROM table_b" 
q1res = engine.execute(text(q1)).fetchall() 
# or 
q2res = engine.execute(text(q1)).fetchone() 

В зависимости от ваших потребностей. Ditch fetchone и fetchall, если вы намерены делать вставки или обновления.

+0

Я хотел бы иметь возможность генерировать инструкцию SQL, которая включает в себя INTERSECT внутри запроса, и выполнять его таким образом, а не извлекать все результаты от обоих и иметь дело с пересечениями python. –

+0

Ну, так как вы выполняете необработанные запросы, просто добавьте пересечение. Я обновил ответ. Также вы можете взглянуть на орму sqlalchemy, который чрезвычайно мощный: [здесь] (http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.intersect) –

Смежные вопросы