避免表中的冲突列标题加入peewee

时间:2014-06-04 21:57:38

标签: mysql join alias peewee

我试图用一个mysql数据库连接peewee中的两个表。这很容易做到这样:

s = Table1.select(Table1, Table2).join(
        Table2).naive().where(Table1.Title == "whatever")

不幸的是,我在Table1和Table2中调用了一个相同的列," URL"。然后,当我选择s.URL时,它会给我表2中的URL,我不想要,我想要Table1中的URL。有没有办法不加入Table2.URL列或命名它不同的东西? This question似乎在常规SQL(不是peewee)中解决了类似的问题,是否有办法在peewee中做类似的事情?

换句话说,我想我正在寻找一个" JOIN AS"方法或" DON'T JOIN THIS COLUMN"在peewee中的方法。

非常感谢, 亚历

1 个答案:

答案 0 :(得分:6)

我还没有使用过peewee,但文档建议任何表格,表达式或列都使用.alias()方法。但这意味着您必须单独为URL列添加别名:

Table1.select(Table1, Table2.URL.alias('t2_url')).join(Table2)...

即使在手工制作的SQL中,您也可以SELECT Table2.*但同时为Table2的其中一列提供别名。