SQLAlchemy союз с разным количеством столбцов - PullRequest
5 голосов
/ 01 ноября 2011

Мне нужно выполнить 2 select в SQLAlchemy.Например:

select1 = Session.query(col1, col2, col3, col4).filter(...)
select2 = Session.query(col1, "", "", col4).filter(...)
result = select1.union(select2).all()

Проблема в том.Я не знаю, как написать "" значение в select2 с помощью SQLAlchemy.

Спасибо.

1 Ответ

6 голосов
/ 02 ноября 2011

Возможно, вам нужна комбинация column, literal_column или null, которые есть в модуле sqlalchemy.sql:

>>> print Query((t.c.col1, 
...              t.c.col2, 
...              t.c.col3,
...              t.c.col4)) \
...   .union(
...       Query((t.c.col1,
...              sqlalchemy.sql.null().label('c2'), 
...              sqlalchemy.sql.literal_column('""').label('c3'),
...              t.c.col2))
...         )
SELECT anon_1.table_col1 AS anon_1_table_col1, anon_1.table_col2 AS anon_1_table_col2, anon_1.table_col3 AS anon_1_table_col3, anon_1.table_col4 AS anon_1_table_col4 
FROM (SELECT "table".col1 AS table_col1, "table".col2 AS table_col2, "table".col3 AS table_col3, "table".col4 AS table_col4 
FROM "table" UNION SELECT "table".col1 AS table_col1, NULL AS c2, "" AS c3, "table".col2 AS table_col2 
FROM "table") AS anon_1
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...