ORM跨表查詢總結

2022-04-01 06:02:42 字數 736 閱讀 4470

一、基於物件的查詢-->子查詢

1、一對多

正向查詢:基於 字段

反向查詢:基於 表名__set.all() 注意:表名全部小寫

2、多對多

正向查詢:基於 欄位.all()

反向查詢:基於 表名_set.all() 注意:表名全部小寫

3、一對一

正向查詢:基於 字段

反向查詢:基於 表名 注意:表名全部小寫

二、基於queryset的查詢-->連表

1、正向查詢: 字段

2、反向查詢: 表名

注意:基於queryset的查詢最重要的是找到基表,filter和values都可以進行跨表查詢

query

直接檢視orm對應的sql語句

三、聚合分組

1、聚合

聚合被稱為終止queryset函式,返回值是字典

2、分組

a、queryset.annotate(),annotate()前面的內容相當於,group by 條件

b、annotate()的返回值是queryset 後面加values() 相當於sql語句select 字段

c、annotate()裡的內容 聚合函式+連表

author.objects.values(addr='

nj').annotate(a= count('

book

')).values(a__gt=2)

基於物件的orm跨表查詢再練習

model.py from django.db import models create your models here.class book models.model nid models.autofield primary key true title models.charfield max...

orm單錶查詢和模糊查詢

1.返回queryset物件的查詢 all 以列表形式返回全部queryset物件 filter kwargs 篩選 exclude kwargs 排除 reverse 反轉 order by field 排序 distinct 去重 2.特殊的queryset物件 values field 返回乙...

mysql跨庫跨表查詢

簡單記錄 select from dysns.uchome pay record,91feile.phpcms game where uchome pay record.uid phpcms game.touserid select from dysns.uchome pay record,91fe...