如何在sqlalchemy中加入后解决模糊列

时间:2014-02-14 01:52:05

标签: python sql sqlalchemy

当我使用statement as

连接两个表(对象)时
session.query(object, robject).filter(getattr(object.c, "hid")==getattr(robject.c,\
 )).subquery()

结果列引用“hid”不明确,因为两个表都有hid列。 我该如何解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:0)

对于子查询,您通常只想命名您需要的列(因为subq不用于加载完整对象),然后您可以使用label()进行其他任何操作:

subq = sess.query(object.a, object.b, object.hid.label('o_hid'), 
                  robject.c, robject.hid.label('r_hid')).filter(..).subquery()

子查询然后根据标签名称命名这些列:

   query(Something).join(subq, subq.c.o_hid == Something.q).filter(subq.c.r_hid == 5)