2013-06-23 35 views
4

在sqlalchemy中查詢時是否可以組合兩列。有如下表格。在sqlalchemy中查詢級聯列時

table 1      table 2 
col1 col2 col3   col1 col2 col3 
A  123  1    ABC A1B2 
B  456  2    DEF C3D4 
C  789  3    GHI E5F6 

我的查詢是這樣的:

session.query(table.col3, (table1.col2 + table2.col2)).join(table2) 

,應該給我下面的結果:

(1, 123A1B2) 
(2, 456C3D4) 
(3, 789E5F6) 

我怎麼會去這樣做呢?

回答

3

它當然取決於db和類型;如果table1.col2是一個數字,那麼你可能會想嘗試:

from sqlalchemy.sql import expression, functions 
from sqlalchemy import types 

... functions.concat(
    expressions.cast(table1.col2, types.Unicode), table2.col2) ... 

通常情況下,+經營者應爲2分文本列工作。

+0

我正在使用sqlite,table1.col2是一個int,table2.col2實際上是一個日期,但我希望它是一個字符串,我只是想在我的查詢中使用它作爲關係唯一id。但實際上,我意識到這不是我想要做的事情......但從來沒有我越來越想知道如何做到這一點,因爲在原始SQL中它並不困難。我只是做tbl1.col2&tbl.col2,但在sqlalcehmy它返回TRUE。不知道爲什麼。 – JoeMicro

+0

它返回true,因爲&in sqlalchemy是布爾運算符 –