- Peewee 教程
- Peewee - 主頁
- Peewee - 概述
- Peewee - 資料庫類
- Peewee - 模型
- Peewee - 欄位類
- Peewee - 插入一條新記錄
- Peewee - 選擇記錄
- Peewee - 過濾器
- Peewee - 主鍵和複合鍵
- Peewee - 更新現有的記錄
- Peewee - 刪除記錄
- Peewee - 建立索引
- Peewee - 約束
- Peewee - 使用 MySQL
- Peewee - 使用 PostgreSQL
- Peewee - 動態定義資料庫
- Peewee - 連線管理
- Peewee - 關係和聯接
- Peewee - 子查詢
- Peewee - 排序
- Peewee - 計數和聚合
- Peewee - SQL 函式
- Peewee - 檢索行元組/字典
- Peewee - 使用者定義運算子
- Peewee - 原子事務
- Peewee - 資料庫錯誤
- Peewee - 查詢生成器
- Peewee - 與 Web 框架的整合
- Peewee - SQLite 擴充套件
- Peewee - PostgreSQL 和 MySQL 擴充套件
- Peewee - 使用 CockroachDB
- Peewee 有用資源
- Peewee - 快速指南
- Peewee - 有用資源
- Peewee - 討論
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])
建立表後,我們用以下示例資料填充它們 -
聯絡人表
聯絡人表如下 -
為了僅顯示已為 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
廣告