python - 使用 peewee 合并具有不同名称的字段

标签 python sql orm peewee

我正在使用 peewee作为 ORM 并有两个这样的类:

class A(Model):
    name = CharField()
    body = TextField()

class B(Model):
    title = CharField()
    body = TextField()

我想从 AB 中获取所有条目,它们的 title/name 以一些字符开头像 'abc'。根据文档,| 运算符应该有所帮助,但我什至无法执行生成的 Expression。显然,我希望在幕后有一个 UNIONAS 表达式。我如何通过 peewee 获得这个?

最佳答案

你应该能够通过类似的东西获得你想要的结果

result = (
    A().select(A.name.alias('name_title'), A.body).where(A.name == 'abc') |
    B().select(B.title.alias('name_title'), B.body).where(B.title == 'abc')
).select().execute()

search_text = 'abc'
table_a_results = A().select(
    A.name.alias('name_title'),
    A.body
).where(A.name == search_text)
table_b_results = B().select(
    B.name.alias('name_title'),
    B.body
).where(B.title == search_text)

result = ( table_a_results | table_b_results ).select().execute()

.alias() 方法根据 docs 为您提供 AS 功能

关于python - 使用 peewee 合并具有不同名称的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37400162/

相关文章:

python - 如何使变量等于 Python 列表中的字符串之一

python - Django 将用户映射到模型

mysql - 如何将正则表达式转换为 like?

sql - 如何用另一个表中的数据更新列? - SQL Server 12.0.5

php - SQL 查询总是在最后得到 '1' Laravel Eloquent

python - 将代码更改为函数并在它们之间传递变量?

python - 使用函数更改列表的值

php - 获取完整干净的 URL

java - ORM 查询?或者更新数据库表信息应该更新到hibernate web应用程序中?

java - Hibernate 3.2 中没有 LONGVARCHAR 的映射