默认情况下,peewee会为表格分配t1
,t2
等名称
我正在尝试在peewee中构建一些复杂的查询,所以我想对表名进行别名。
让我们假设一个简单的案例:我们有一个表<MyTable>
,我怎么能得到像
select foo.id from MyTable as foo;
我尝试过设置alias
,但它看起来像是一个类方法而且不起作用:
MyTableModel.select().from_(MyTableModel.alias(), SomeOtherTable) # << won't work
我找到了AliasMap
类,它被设置为alias_map_class
中QueryCompiler
类变量的默认值。另外,alias
中有QueryCompiler
方法,但它用于other目的:
alias()方法用于创建自联接。
答案 0 :(得分:0)
好的,不得不再深入研究documentation:
class MyTable(Model):
class Meta:
table_alias = 'my_alias'
答案 1 :(得分:0)
car_model = Cars.as_entity().alias('car_type_query')
car_type_query = Cars.select(car_model.c.car_type_id)\
.from_(car_model)\
.where(car_model.c.id == car)