将 table 列添加到 select 而不是将其添加到 select_from
Add table columns to select without adding it to select_from
我在数据库中准备了一个函数,我想使用 Gino 调用它。此函数的 return 类型等于 table 之一,它是使用声明创建的。我尝试做的是:
select(MyModel).select_from(func.my_function);
问题是,SQLAlchemy 自动检测到我的 select
中的 table,并将其隐式添加到 select_from
。结果 SQL 包含我的函数和 FROM
子句中的 table 名称,结果是函数结果和整个 table 的笛卡尔坐标(不是我想要的真的)。
我的问题是 – 我能以某种方式指定我想要 select 模型的所有列 而 在 FROM
?
如果您不希望 SA 自动将 MyModel
添加到 FROM
子句,您必须指定列(作为数组)。
您必须这样做:
select([your_model_table.c.column1, your_model_table.c.column2]).select_from(func.my_function);
如果你想要所有列:
select(your_model_table.columns).select_from(func.my_function);
我在数据库中准备了一个函数,我想使用 Gino 调用它。此函数的 return 类型等于 table 之一,它是使用声明创建的。我尝试做的是:
select(MyModel).select_from(func.my_function);
问题是,SQLAlchemy 自动检测到我的 select
中的 table,并将其隐式添加到 select_from
。结果 SQL 包含我的函数和 FROM
子句中的 table 名称,结果是函数结果和整个 table 的笛卡尔坐标(不是我想要的真的)。
我的问题是 – 我能以某种方式指定我想要 select 模型的所有列 而 在 FROM
?
如果您不希望 SA 自动将 MyModel
添加到 FROM
子句,您必须指定列(作为数组)。
您必须这样做:
select([your_model_table.c.column1, your_model_table.c.column2]).select_from(func.my_function);
如果你想要所有列:
select(your_model_table.columns).select_from(func.my_function);