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])

建立表後,我們用以下示例資料填充它們 -

聯絡人表

聯絡人表如下 -

Data Table Data Table1

為了僅顯示已為 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
廣告
© . All rights reserved.