首页 > 其他分享 >django orm 软删除联表查询 需要显示软删除条件

django orm 软删除联表查询 需要显示软删除条件

时间:2023-12-12 12:01:14浏览次数:34  
标签:__ 删除 course orm user 联表 edu lesson id

比如课程学习

required_ok = UserLesson.objects.values('uuid').distinct().filter(
            user_id=self.request.user_id,
        ).filter(
            lesson__course__course_bx_org__org_id__in=org_ids,
        ).filter(
            Q(lesson__course__course_bx_org__user_type_id__in=list(user_type_list)) | Q(
                lesson__course__course_bx_org__user_type__isnull=True)
        )

转化为SQL

SELECT DISTINCT
	"edu_user_lesson"."uuid" 
FROM
	"edu_user_lesson"
	INNER JOIN "edu_course_lesson" ON ( "edu_user_lesson"."lesson_id" = "edu_course_lesson"."uuid" )
	INNER JOIN "edu_course" ON ( "edu_course_lesson"."course_id" = "edu_course"."uuid" )
	INNER JOIN "edu_course_bx" ON ( "edu_course"."uuid" = "edu_course_bx"."course_id" )
	LEFT OUTER JOIN "edu_course_bx" T7 ON ( "edu_course"."uuid" = T7."course_id" )
	INNER JOIN "edu_course_bx" T9 ON ( "edu_course"."uuid" = T9."course_id" ) 
WHERE
	"edu_user_lesson"."deleted_at" = 0 
	AND "edu_user_lesson"."user_id" = '26f1a6d68be24a1a896d6f1b3c8561b6' 
	AND "edu_course_bx"."org_id" IN ( '5873a495e7b448ada3714b1ea44dbe2d', 'bd5abe6cff8542b9b9f7df945ec342c7' ) 
	AND ( T7."user_type_id" IN ( 'aacbd77381f5485693cbf93f439ce373' ) OR T7."user_type_id" IS NULL ) 
	AND T9."deleted_at" = 0 
	AND "edu_user_lesson"."learn_cycle_date" BETWEEN '2023-01-01' 
	AND '2023-12-31'

统计不正确原因

  • course_bx_org_ 已经被软删除
  • 添加 SQL
"edu_course_bx"."deleted_at" = 0 
  • 添加 ORM
filter(
            lesson__course__course_bx_org__deleted_at=0
        )

标签:__,删除,course,orm,user,联表,edu,lesson,id
From: https://www.cnblogs.com/guanchaoguo/p/17896494.html

相关文章

  • [论文阅读] Replacing softmax with ReLU in Vision Transformers
    Pretitle:ReplacingsoftmaxwithReLUinVisionTransformersaccepted:Arxiv2023paper:https://export.arxiv.org/abs/2309.08586code:None关键词:attention,parallelization阅读理由:GoogleDeepmind,标题挺有意思Idea序列缩放能缓解ReLU等激活函数在attention中替......
  • 自连接及联表查询练习
    --自连接CREATETABLE`category`(`categoryid`INT(10)UNSIGNEDNOTNULLAUTO_INCREMENTCOMMENT'主题',`pid`INT(10)NOTNULLCOMMENT'父id',`categoryName`VARCHAR(50)NOTNULLCOMMENT'主题名字',PRIMARYKEY(`categoryid`))ENGINE=INNODBAUTO_INC......
  • 联表查询joinON详解
    --联表查询join--查询参加了考试的同学(学号,姓名,成绩)ALTERTABLE`student2_copy`ADDgradeINT(100)UPDATE`student2_copy`SET`grade`=66WHEREid=1;UPDATE`student2_copy`SET`grade`=89WHEREid<8ANDid>2--添加成绩SELECT*FROM`student2`;SELECT*FROM`student......
  • Flask ORM 学习笔记Part09:数据查询(上)
    前面的笔记,从Marshmallow开始就稍微有些跑题,今天记录一下如何使用Flask-SQLAlchemy进行数据查询。查询语法糖在前文中,有定义过一系列的model类,这里一Account类作为示例。fromappimportappfrommodelimport*fromschemaimport*frompprintimportpprint#fromsqlalchem......
  • relay interface (formerly relayfs) 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/filesystems/relay.html#relay-interface-formerly-relayfsRelayInterface(formerlyrelayfs)介绍Relay接口提供了一种方式,让内核应用能够通过用户定义的“中继通道”高效地将大量数据从内核传输到用户空间。一个“中继通道”是一种......
  • unity Transform 的 Rotate(xAngle: float, yAngle: float, zAngle: float, relativeT
    publicclassdemoword2:MonoBehaviour{//StartiscalledbeforethefirstframeupdatevoidStart(){//transform.Rotate(60,70,80,Space.World);//eulerAngles.z度围绕z轴,eulerAngles.x度围绕x轴,eulerAngles.y度围绕y轴//......
  • 简述—下ORM,并列举不少于两个应用实例
    简述—下ORM,并列举不少于两个应用实例ORM(Object-RelationalMapping)是一种编程技术,用于将对象模型和关系数据库之间建立映射,从而实现对数据库的操作更加方便、面向对象化。ORM框架负责将数据库表的记录映射为对象,同时也能将对象的操作映射为数据库的操作。以下是两个ORM的应用实......
  • Performance Improvements in .NET 8 & 7 & 6 -- Thread【翻译】
    线程.NET的最近版本在线程、并行、并发和异步等方面做出了巨大的改进,例如ThreadPool的完全重写(在.NET6和.NET7中),异步方法基础设施的完全重写(在.NETCore2.1中),ConcurrentQueue的完全重写(在.NETCore2.0中)等等。这个版本没有包含这样的大规模改革,但它确实包含了一......
  • Linux下删除当前目录下的所有文件夹及文件保留最新的几个文件夹及文件
    一、查找目录或文件1.1、查找指定文件夹和文件具体的示例:查找当前目录下指定文件夹和文件find./-maxdepth1-name"jobs"-o-name"config.xml"命令说明-maxdepth目录深度,1表示只搜索一级目录-name后面跟文件夹或文件,多个文件夹或文件,用-o组合连接jobs、config.xml指定的文......
  • FAILED: ParseException line 1:65 cannot recognize input near 'row' 'formatted' &
    hive报FAILED:ParseExceptionline1:65cannotrecognizeinputnear'row''formatted''delimited'intablerowformatspecification错误语句:insertoverwritelocaldirectory'/home/ljpbd/datas/student'rowformatteddel......