添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Peewee - 子查询

在 SQL 中,子查询是嵌入在另一个查询的 WHERE 子句中的查询。 我们可以将子查询实现为 model.select() 作为外部 model.select() 语句的 where 属性内的参数。

为了演示在 Peewee 中使用子查询,让我们使用定义的以下模型 −

from peewee import * db = SqliteDatabase('mydatabase.db') class BaseModel(Model): class Meta: database = db class Contacts(BaseModel): RollNo = IntegerField() Name = TextField() City = TextField() class Branches(BaseModel): RollNo = IntegerField() Faculty = TextField() db.create_tables([Contacts, Branches])

创建表后,它们会填充以下示例数据 −

Contacts 联系人表

Contacts 联系人表如下 −

为了仅显示为 ETC 教职工注册的 RollNo 的联系人表中的姓名和城市,以下代码生成一个 SELECT 查询,其 WHERE 子句中包含另一个 SELECT 查询。

#this query is used as subquery faculty=Branches.select(Branches.RollNo).where(Branches.Faculty=="ETC") names=Contacts.select().where (Contacts.RollNo .in_(faculty)) print ("RollNo and City for Faculty='ETC'") for name in names: print ("RollNo:{} City:{}".format(name.RollNo, name.City)) db.close()

以上代码会显示如下结果:

RollNo and City for Faculty='ETC' RollNo:103 City:Indore RollNo:104 City:Nasik RollNo:108 City:Delhi RollNo:110 City:Nasik